| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
sarl $3, %ecx
instead of:
movl $3, %ecx
sarl %cl, %edx
This shrinks fast isel 176.gcc by about 2000 instructions (.3%)
llvm-svn: 56413
|
| |
|
|
|
|
|
| |
Handle{Virt,Phys}Reg{Def,Use}. Remove a redundant check
for register zero, and redundant checks for isPhysicalRegister.
llvm-svn: 56412
|
| |
|
|
|
|
| |
compute the maximum element directly.
llvm-svn: 56411
|
| |
|
|
|
|
|
|
| |
live-in indices
correct in the presence of things like EH labels.
llvm-svn: 56410
|
| |
|
|
| |
llvm-svn: 56399
|
| |
|
|
| |
llvm-svn: 56391
|
| |
|
|
|
|
| |
Change some class to struct for coherency.
llvm-svn: 56389
|
| |
|
|
|
|
| |
Per review feedback.
llvm-svn: 56388
|
| |
|
|
|
|
| |
of mayReadFromMemory and mayWriteToMemory.
llvm-svn: 56387
|
| |
|
|
|
|
| |
Check bits for preferred register.
llvm-svn: 56384
|
| |
|
|
|
|
| |
around the live interval being allocated. Do not continue to try to spill another register, just grab the physical register and move on.
llvm-svn: 56381
|
| |
|
|
| |
llvm-svn: 56380
|
| |
|
|
| |
llvm-svn: 56378
|
| |
|
|
| |
llvm-svn: 56377
|
| |
|
|
| |
llvm-svn: 56376
|
| |
|
|
| |
llvm-svn: 56372
|
| |
|
|
|
|
|
| |
results in better code for globals. Also, unbreak the local CSE for
GlobalValue stub loads.
llvm-svn: 56371
|
| |
|
|
|
|
| |
have previously been assigned conflicting physreg.
llvm-svn: 56364
|
| |
|
|
| |
llvm-svn: 56359
|
| |
|
|
|
|
|
|
| |
use ARG_FLAGSSDNode as the most aligned node type,
as it contains an int64_t, which is 8-byte
aligned on mingw.
llvm-svn: 56358
|
| |
|
|
| |
llvm-svn: 56355
|
| |
|
|
| |
llvm-svn: 56352
|
| |
|
|
| |
llvm-svn: 56349
|
| |
|
|
|
|
| |
untested, Use::swap() is definitely not done yet
llvm-svn: 56348
|
| |
|
|
| |
llvm-svn: 56345
|
| |
|
|
|
|
| |
and non-demotion of readnone to readonly.
llvm-svn: 56344
|
| |
|
|
| |
llvm-svn: 56343
|
| |
|
|
|
|
|
|
| |
Unfortunately this means removing one regression test
of GlobalsModRef because I couldn't work out how to
perform it without MarkModRef.
llvm-svn: 56342
|
| |
|
|
|
|
|
|
|
| |
can get the readnone/readonly attributes, and gives them it.
The plan is to remove markmodref (which did the same thing
by querying GlobalsModRef) and delete the analogous
functionality from GlobalsModRef.
llvm-svn: 56341
|
| |
|
|
| |
llvm-svn: 56338
|
| |
|
|
|
|
|
|
| |
description says it does), not just when -analyze is
used as well. This means printing to stderr, so adjust
some tests.
llvm-svn: 56337
|
| |
|
|
|
|
|
| |
and redo as linked list walk. Logic moved into RA.
Per review feedback.
llvm-svn: 56326
|
| |
|
|
|
|
| |
Fixes PR 2805
llvm-svn: 56321
|
| |
|
|
|
|
|
|
| |
catches a fair number of common cases. Note that this currently
causes Fast-ISel to leave behind lots of dead instructions.
Those will be dealt with in subsequent commits.
llvm-svn: 56320
|
| |
|
|
|
|
|
|
| |
the "erase".
Thanks to Ji Young Park for the patch!
llvm-svn: 56316
|
| |
|
|
| |
llvm-svn: 56315
|
| |
|
|
| |
llvm-svn: 56314
|
| |
|
|
| |
llvm-svn: 56311
|
| |
|
|
|
|
| |
defs to be necessarily live.
llvm-svn: 56310
|
| |
|
|
| |
llvm-svn: 56308
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
copy of the BURRList scheduler, but with several parts ripped
out, such as backtracking, online topological sort maintenance
(needed by backtracking), the priority queue, and Sethi-Ullman
number computation and maintenance (needed by the priority
queue). As a result of all this, it generates somewhat lower
quality code, but that's its tradeoff for running about 30%
faster than list-burr in -fast mode in many cases.
This is somewhat experimental. Moving forward, major pieces of
this can be refactored with pieces in common with
ScheduleDAGRRList.cpp.
llvm-svn: 56307
|
| |
|
|
|
|
| |
privilege from read / write to read / executable.
llvm-svn: 56303
|
| |
|
|
| |
llvm-svn: 56301
|
| |
|
|
| |
llvm-svn: 56300
|
| |
|
|
| |
llvm-svn: 56299
|
| |
|
|
|
|
|
|
|
|
|
|
| |
over having it in a register. And wait until after checking type
legality before requesting that the callee address be placed in a
register. Also, fix support for calls with void return type.
This speeds up fast-isel isel time by about 15% and reduces
instruction counts by about 3% overall on certain testcases. It also
changes many indirect calls to direct calls.
llvm-svn: 56292
|
| |
|
|
|
|
|
|
|
| |
with an earlyclobber operand elsewhere. Propagate
this bit and the earlyclobber bit through SDISel.
Change linear-scan RA not to allocate regs in a way
that conflicts with an earlyclobber. See also comments.
llvm-svn: 56290
|
| |
|
|
| |
llvm-svn: 56287
|
| |
|
|
|
|
| |
branch condition.
llvm-svn: 56286
|
| |
|
|
|
|
| |
This one slipped through cracks very well.
llvm-svn: 56284
|