This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Sun, Sep 12, 2004 at 03:19:28PM -0700, Andrew Pinski wrote:@@ -946,8 +945,12 @@ make_decl_rtl (tree decl) /* Now handle ordinary static variables and functions (in memory). Also handle vars declared register invalidly. */
- if (name[0] == '*' && (reg_number >= 0 || reg_number == -3)) - error ("%Jregister name given for non-register variable '%D'", decl, decl); + if (name[0] == '*')
There should be no fallthru from the previous if.
+ { + reg_number = decode_reg_name (name); + if (reg_number >= 0 || reg_number == -3)
And, as I was saying, I believe this error should be disabled if REGISTER_PREFIX is non-empty.
Sorry if this late coming back to this patch but I did not see any use full for it until just recently. I noticed that small C testcases are slowed down because each time we add a new builtin because a call to decode_reg_name shows up even though we know that they cannot be register names at all. Here is the new patch which fixes based on your comments.
Thanks, Andrew Pinski
ChangeLog: * varasm.c (decode_reg_name): Revert change to check for zero length strings. (make_decl_rtl): Make sure that we call decode_reg_name only when needed.
Attachment:
speedupReg_decode.diff.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |