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 08/05/2010 02:44 AM, Jeff Law wrote: > Unnesting would be good, but I don't think it's sufficient since we have > to deal with libcalls. Now if the function's arguments were guaranteed > to be regs, SSA_NAMEs or the like, then we'd have a fighting chance of > greatly simplifying that code. Maybe something like the following draft patch? There are some code generation differences on i686, but nothing that looks overly serious. The following is slightly puzzling: + movl 300(%ebx), %eax - call *300(%ebx) + call *%eax because one would expect the optimizers to do that (unless the costs suggest it isn't profitable). Maybe we'd want to restrict the TER changes to ACCUMULATE_OUTGOING_ARGS targets, and find some additional kinds of replacements we can allow. There are comments about constructors being called to construct an object in the argument list - that can't happen anymore, can it? Bernd
Attachment:
nestcalls.diff
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |