builtins.c (expand_builtin_strlen): Evaluate the lengths of string literals at compile-time.
* builtins.c (expand_builtin_strlen): Evaluate the lengths of string literals at compile-time. From-SVN: r65585
This commit is contained in:
parent
15d4fd9863
commit
712b7a052f
@ -1,3 +1,8 @@
|
||||
2003-04-14 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* builtins.c (expand_builtin_strlen): Evaluate the lengths of
|
||||
string literals at compile-time.
|
||||
|
||||
2003-04-14 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* fold-const.c (fold): Transform (c1 - x) cmp c2, where cmp is a
|
||||
|
@ -1935,14 +1935,18 @@ expand_builtin_strlen (exp, target)
|
||||
else
|
||||
{
|
||||
rtx pat;
|
||||
tree src = TREE_VALUE (arglist);
|
||||
|
||||
int align
|
||||
= get_pointer_alignment (src, BIGGEST_ALIGNMENT) / BITS_PER_UNIT;
|
||||
|
||||
tree len, src = TREE_VALUE (arglist);
|
||||
rtx result, src_reg, char_rtx, before_strlen;
|
||||
enum machine_mode insn_mode = value_mode, char_mode;
|
||||
enum insn_code icode = CODE_FOR_nothing;
|
||||
int align;
|
||||
|
||||
/* If the length can be computed at compile-time, return it. */
|
||||
len = c_strlen (src);
|
||||
if (len)
|
||||
return expand_expr (len, target, value_mode, EXPAND_NORMAL);
|
||||
|
||||
align = get_pointer_alignment (src, BIGGEST_ALIGNMENT) / BITS_PER_UNIT;
|
||||
|
||||
/* If SRC is not a pointer type, don't do this operation inline. */
|
||||
if (align == 0)
|
||||
|
Loading…
Reference in New Issue
Block a user