- Jul 11, 2010
-
-
Jakob Stoklund Olesen authored
This also avoids fatal copies from physregs. llvm-svn: 108061
-
Dan Gohman authored
if a block is split (by a custom inserter), the insert point may be in a different block than it was originally. This fixes 32-bit llvm-gcc bootstrap builds, and I haven't been able to reproduce it otherwise. llvm-svn: 108060
-
- Jul 10, 2010
-
-
Duncan Sands authored
operation, but the way it's implemented requires the operation to also be commutative. So add a check for commutativity (and tweak the corresponding comments). This makes no difference in practice since every associative LLVM instruction is also commutative! Here's an example to show the need for commutativity: the accum_recursion.ll testcase calculates the factorial function. Before the transformation the result of a call is ((((1*1)*2)*3)...)*x while afterwards it is (((1*x)*(x-1))...*2)*1 which clearly requires both associativity and commutativity of * to be equal to the original. llvm-svn: 108056
-
Jakob Stoklund Olesen authored
ScheduleDAGEmit, TwoAddressLowering, and PHIElimination. This switches the bulk of register copies to using COPY, but many less used copyRegToReg calls remain. llvm-svn: 108050
-
Jakob Stoklund Olesen authored
Based on a patch by Rafael Espíndola. Attempt to make the FpSET_ST1 hack more robust, but we are still relying on FpSET_ST0 preceeding it. This is only for supporting really weird x87 inline asm. We support: FpSET_ST0 INLINEASM FpSET_ST0 FpSET_ST1 INLINEASM with and without kills on the arguments. We don't support: FpSET_ST1 FpSET_ST0 INLINEASM nor FpSET_ST1 INLINEASM Just Don't Do It! llvm-svn: 108047
-
Dan Gohman authored
at the end of the block. llvm-svn: 108045
-
Chandler Carruth authored
llvm-svn: 108043
-
Dan Gohman authored
- 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
-
Jakob Stoklund Olesen authored
it is popped, even if it is ununsed. A CopyFromReg node is too weak to represent the required sideeffect, so insert an FpGET_ST0 instruction directly instead. This will matter when CopyFromReg gets lowered to a generic COPY instruction. llvm-svn: 108037
-
- Jul 09, 2010
-
-
Devang Patel authored
llvm-svn: 108023
-
Bruno Cardoso Lopes authored
llvm-svn: 108022
-
Bruno Cardoso Lopes authored
llvm-svn: 108021
-
Jakob Stoklund Olesen authored
llvm-svn: 108020
-
Bruno Cardoso Lopes authored
llvm-svn: 108017
-
Jakob Stoklund Olesen authored
llvm-svn: 108013
-
Jakob Stoklund Olesen authored
llvm-svn: 108012
-
Jakob Stoklund Olesen authored
llvm-svn: 108011
-
Jakob Stoklund Olesen authored
llvm-svn: 108010
-
Jim Grosbach authored
rdar://8131327 llvm-svn: 108008
-
Bill Wendling authored
llvm-svn: 108005
-
Dan Gohman authored
llvm-svn: 108001
-
Bruno Cardoso Lopes authored
notes: - The instructions are being added with dummy placeholder patterns using some 256 specifiers, this is not meant to work now, but since there are some multiclasses generic enough to accept them, when we go for codegen, the stuff will be already there. - Add VEX encoding bits to support YMM - Add MOVUPS and MOVAPS in the first round - Use "Y" as suffix for those Instructions: MOVUPSYrr, ... - All AVX instructions in X86InstrSSE.td will move soon to a new X86InstrAVX file. llvm-svn: 107996
-
Jakob Stoklund Olesen authored
inserted in a MBB, and return an already inserted MI. This target API change is necessary to allow foldMemoryOperand to call storeToStackSlot and loadFromStackSlot when folding a COPY to a stack slot reference in a target independent way. The foldMemoryOperandImpl hook is going to change in the same way, but I'll wait until COPY folding is actually implemented. Most targets only fold copies and won't need to specialize this hook at all. llvm-svn: 107991
-
Gabor Greif authored
llvm-svn: 107990
-
Gabor Greif authored
llvm-svn: 107989
-
Gabor Greif authored
llvm-svn: 107988
-
Bob Wilson authored
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
-
Gabor Greif authored
llvm-svn: 107984
-
Gabor Greif authored
llvm-svn: 107983
-
Gabor Greif authored
llvm-svn: 107982
-
Gabor Greif authored
llvm-svn: 107981
-
Gabor Greif authored
llvm-svn: 107980
-
Gabor Greif authored
llvm-svn: 107979
-
Gabor Greif authored
llvm-svn: 107978
-
Gabor Greif authored
llvm-svn: 107977
-
Gabor Greif authored
llvm-svn: 107976
-
Gabor Greif authored
llvm-svn: 107975
-
Gabor Greif authored
llvm-svn: 107974
-
Gabor Greif authored
llvm-svn: 107972
-
Gabor Greif authored
llvm-svn: 107971
-