| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
intrinsic from the x86 code to the generic code.
llvm-svn: 131332
|
|
|
|
| |
llvm-svn: 130934
|
|
|
|
|
|
| |
FastEmit_i can fail for non-Thumb2 ARM. Makes ARMSimplifyAddress work correctly, and reduces the number of fast-isel bailouts on non-Thumb ARM.
llvm-svn: 130560
|
|
|
|
| |
llvm-svn: 130360
|
|
|
|
|
|
| |
common. rdar://problem/9303592 .
llvm-svn: 130338
|
|
|
|
| |
llvm-svn: 130337
|
|
|
|
| |
llvm-svn: 130205
|
|
|
|
| |
llvm-svn: 130033
|
|
|
|
|
|
|
|
|
| |
generated
en-mass for C++ PODs. On my c++ test file, this cuts the fast isel rejects by 10x
and shrinks the generated .s file by 5%
llvm-svn: 129755
|
|
|
|
|
|
| |
this fixes a few rejects on c++ iterator loops.
llvm-svn: 129694
|
|
|
|
| |
llvm-svn: 129693
|
|
|
|
|
|
|
|
|
|
| |
2. implement rdar://9289501 - fast isel should fold trivial multiplies to shifts
3. teach tblgen to handle shift immediates that are different sizes than the
shifted operands, eliminating some code from the X86 fast isel backend.
4. Have FastISel::SelectBinaryOp use (the poorly named) FastEmit_ri_ function
instead of FastEmit_ri to simplify code.
llvm-svn: 129666
|
|
|
|
|
|
|
|
|
|
| |
allowing us to fold the immediate into the 'and' in this case:
int test1(int i) {
return 8&i;
}
llvm-svn: 129653
|
|
|
|
|
|
| |
Luis Felipe Strano Moraes!
llvm-svn: 129558
|
|
|
|
| |
llvm-svn: 129271
|
|
|
|
| |
llvm-svn: 127496
|
|
|
|
|
|
| |
message instead of creating DBG_VALUE for undefined value in reg0.
llvm-svn: 121059
|
|
|
|
| |
llvm-svn: 119990
|
|
|
|
|
|
| |
Otherwise let getRegForValue() find register for this argument.
llvm-svn: 113843
|
|
|
|
| |
llvm-svn: 113614
|
|
|
|
| |
llvm-svn: 111223
|
|
|
|
| |
llvm-svn: 109103
|
|
|
|
|
|
|
| |
update the current basic block in addition to the current insert
position, so that they remain consistent. This fixes rdar://8204072.
llvm-svn: 108765
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
since it doesn't work for front-ends which don't emit column information
(which includes llvm-gcc in its present configuration), and doesn't
work for clang for K&R style variables where the variables are declared
in a different order from the parameter list.
Instead, make a separate pass through the instructions to collect the
llvm.dbg.declare instructions in order. This ensures that the debug
information for variables is emitted in this order.
llvm-svn: 108538
|
|
|
|
| |
llvm-svn: 108364
|
|
|
|
|
|
| |
it can look past points where a debugger might modify user variables.
llvm-svn: 108336
|
|
|
|
|
|
|
| |
constants, since they may not be emited near the other instructions
which get the same line, and this confuses debug info.
llvm-svn: 108302
|
|
|
|
|
|
| |
This doesn't change the behavior of SelectBitcast for X86.
llvm-svn: 108073
|
|
|
|
|
|
|
| |
This assumes that the registers can be copied which is probably a safe
assumption.
llvm-svn: 108070
|
|
|
|
|
|
|
| |
The remaining copyRegToReg calls actually check the return value (shock!), so we
cannot trivially replace them with COPY instructions.
llvm-svn: 108069
|
|
|
|
|
|
|
|
|
| |
- Check getBytesToPopOnReturn().
- Eschew ST0 and ST1 for return values.
- Fix the PIC base register initialization so that it doesn't ever
fail to end up the top of the entry block.
llvm-svn: 108039
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
U utils/TableGen/FastISelEmitter.cpp
--- Reverse-merging r107943 into '.':
U test/CodeGen/X86/fast-isel.ll
U test/CodeGen/X86/fast-isel-loads.ll
U include/llvm/Target/TargetLowering.h
U include/llvm/Support/PassNameParser.h
U include/llvm/CodeGen/FunctionLoweringInfo.h
U include/llvm/CodeGen/CallingConvLower.h
U include/llvm/CodeGen/FastISel.h
U include/llvm/CodeGen/SelectionDAGISel.h
U lib/CodeGen/LLVMTargetMachine.cpp
U lib/CodeGen/CallingConvLower.cpp
U lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
U lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
U lib/CodeGen/SelectionDAG/FastISel.cpp
U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
U lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
U lib/CodeGen/SelectionDAG/InstrEmitter.cpp
U lib/CodeGen/SelectionDAG/TargetLowering.cpp
U lib/Target/XCore/XCoreISelLowering.cpp
U lib/Target/XCore/XCoreISelLowering.h
U lib/Target/X86/X86ISelLowering.cpp
U lib/Target/X86/X86FastISel.cpp
U lib/Target/X86/X86ISelLowering.h
llvm-svn: 107987
|
|
|
|
|
|
| |
a DBG_VALUE after a terminator, or emitting any instructions before an EH_LABEL.
llvm-svn: 107943
|
|
|
|
|
|
|
|
|
| |
EXTRACT_SUBREG no longer appears as a machine instruction. Use COPY instead.
Add isCopy() checks in many places using isMoveInstr() and isExtractSubreg().
The isMoveInstr hook will be removed later.
llvm-svn: 107879
|
|
|
|
|
|
| |
Debug info intrinsics win for now.
llvm-svn: 107850
|
|
|
|
|
|
|
| |
prefer to materialize as local constants. This fixes the clang
bootstrap abort.
llvm-svn: 107840
|
|
|
|
|
|
| |
a separate DCE pass over MachineInstrs.
llvm-svn: 107804
|
|
|
|
|
|
|
|
| |
around everywhere, and also give it an InsertPt member, to enable isel
to operate at an arbitrary position within a block, rather than just
appending to a block.
llvm-svn: 107791
|
|
|
|
|
|
|
|
|
| |
instance, rather than pointers to all of FunctionLoweringInfo's
members.
This eliminates an NDEBUG ABI sensitivity.
llvm-svn: 107789
|
|
|
|
|
|
| |
allow target-specific fast-isel code to make use of it directly.
llvm-svn: 107787
|
|
|
|
| |
llvm-svn: 107451
|
|
|
|
|
|
|
| |
from a Value to a Type, because it doesn't actually care about
the Value.
llvm-svn: 107383
|
|
|
|
|
|
|
| |
available in a register. This is pretty primitive, but it reduces the
number of instructions in common testcases by 4%.
llvm-svn: 107380
|
|
|
|
| |
llvm-svn: 107377
|
|
|
|
| |
llvm-svn: 106415
|
|
|
|
|
|
|
| |
the LocalValueMap, to make it more flexible when fast-isel isn't
proceding straight top-down.
llvm-svn: 106414
|
|
|
|
|
|
| |
on calls and similar instructions.
llvm-svn: 106353
|
|
|
|
| |
llvm-svn: 106279
|
|
|
|
|
|
|
|
|
|
|
|
| |
addresses a longstanding deficiency noted in many FIXMEs scattered
across all the targets.
This effectively moves the problem up one level, replacing eleven
FIXMEs in the targets with eight FIXMEs in CodeGen, plus one path
through FastISel where we actually supply a DebugLoc, fixing Radar
7421831.
llvm-svn: 106243
|
|
|
|
| |
llvm-svn: 104645
|