| 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
|
|
|
|
|
|
| |
compute the maximum element directly.
llvm-svn: 56411
|
|
|
|
| |
llvm-svn: 56391
|
|
|
|
| |
llvm-svn: 56378
|
|
|
|
| |
llvm-svn: 56377
|
|
|
|
| |
llvm-svn: 56376
|
|
|
|
|
|
|
| |
results in better code for globals. Also, unbreak the local CSE for
GlobalValue stub loads.
llvm-svn: 56371
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 56311
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 56277
|
|
|
|
| |
llvm-svn: 56276
|
|
|
|
|
|
|
| |
up some new ascii art to illustrate what it does. This change
currently has no effect on generated code.
llvm-svn: 56270
|
|
|
|
|
|
| |
function with appropriate parameters. This allows us to support blocks on PPC.
llvm-svn: 56267
|
|
|
|
|
|
| |
Apologies for the thrashing.
llvm-svn: 56251
|
|
|
|
|
|
|
|
|
|
| |
- Add linkage to SymbolSDNode (default to external).
- Change ISD::ExternalSymbol to ISD::Symbol.
- Change ISD::TargetExternalSymbol to ISD::TargetSymbol
These changes pave the way to allowing SymbolSDNodes with non-external linkage.
llvm-svn: 56249
|
|
|
|
|
|
|
|
|
|
|
| |
http://llvm.org/bugs/show_bug.cgi?id=2751
Abicall was enabled even when static code model was provided
in the command line.
The correct behavior is to disable abicall when static is
specified.
llvm-svn: 56228
|
|
|
|
|
|
|
|
|
| |
isImmediate(), isRegister(), and friends, to avoid confusion
about having two different names with the same meaning. I'm
not attached to the longer names, and would be ok with
changing to the shorter names if others prefer it.
llvm-svn: 56189
|
|
|
|
| |
llvm-svn: 56184
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently it just holds the calling convention and flags
for isVarArgs and isTailCall.
And it has several utility methods, which eliminate magic
5+2*i and similar index computations in several places.
CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle
nodes that are not CSE'd gracefully.
llvm-svn: 56183
|
|
|
|
| |
llvm-svn: 56182
|
|
|
|
| |
llvm-svn: 56181
|
|
|
|
| |
llvm-svn: 56180
|
|
|
|
| |
llvm-svn: 56179
|
|
|
|
| |
llvm-svn: 56178
|
|
|
|
| |
llvm-svn: 56176
|
|
|
|
| |
llvm-svn: 56172
|
|
|
|
| |
llvm-svn: 56171
|
|
|
|
|
|
|
| |
with ConstantInt. This led to fixing a bug in TargetLowering.cpp
using getValue instead of getAPIntValue.
llvm-svn: 56159
|
|
|
|
| |
llvm-svn: 56126
|
|
|
|
|
|
| |
stack size. Add a test case.
llvm-svn: 56119
|
|
|
|
|
|
| |
isel.
llvm-svn: 56117
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cmp-and-swap reversed the Cmp and Swap arguments; comments
make it clear this is unintentional. Unfortunately, the
x86 BE had a compensating reversal, which is removed here.
PPC is OK.
From inspection of the Alpha code I think it is OK, but
if somebody has that platform please check it out. I
cannot test on that platform.
llvm-svn: 56091
|
|
|
|
|
|
|
|
| |
giving up. This fixes 445.gobmk on
X86-64 in fast isel.
llvm-svn: 56088
|
|
|
|
|
|
|
| |
__sync_fetch_and_nand as ANDC, even though that's
not what nand means.
llvm-svn: 56087
|
|
|
|
| |
llvm-svn: 56070
|
|
|
|
|
|
|
| |
to static allocas. As part of this change, refactor the
address mode code for laods and stores.
llvm-svn: 56066
|
|
|
|
|
|
| |
hidden struct ptr; Re-enable fastcc.
llvm-svn: 56061
|
|
|
|
|
|
| |
Patch by Paul Redmond.
llvm-svn: 56059
|
|
|
|
| |
llvm-svn: 56055
|
|
|
|
|
|
|
| |
convention (not related to recent Ada testsuite
failures).
llvm-svn: 56054
|
|
|
|
|
|
|
| |
a slew of Ada testsuite failures on x86-32 linux.
Seems to be related to the use of float.
llvm-svn: 56053
|
|
|
|
|
|
|
|
|
| |
UsedDirective for some symbols in llvm.used into
Darwin-specific code. I've decided LessPrivateGlobal
is potentially a useful abstraction and left it in
the target-independent area, with improved comment.
llvm-svn: 56024
|
|
|
|
| |
llvm-svn: 56005
|
|
|
|
|
|
|
|
| |
It's already special-cased and treated as rematerializable within
LiveIntervals; this allows it to be handled by other passes
such as TwoAddressInstrctionPass.
llvm-svn: 55999
|
|
|
|
|
|
| |
No functionality change.
llvm-svn: 55996
|
|
|
|
|
|
| |
funky getelementptr embedded in the address operand.
llvm-svn: 55975
|