- Jan 24, 2008
-
-
Owen Anderson authored
Move some functionality for adding flags to MachineInstr's into methods on MachineInstr rather than LiveVariables. llvm-svn: 46295
-
Evan Cheng authored
llvm-svn: 46292
-
- Jan 23, 2008
-
-
Duncan Sands authored
precision integers. This won't actually work (and most of the code is dead) unless the new legalization machinery is turned on. While there, I rationalized the handling of i1, and removed some bogus (and unused) sextload patterns. For i1, this could result in microscopically better code for some architectures (not X86). It might also result in worse code if annotating with AssertZExt nodes turns out to be more harmful than helpful. llvm-svn: 46280
-
Owen Anderson authored
llvm-svn: 46263
-
- Jan 22, 2008
-
-
Chris Lattner authored
NDEBUG. This is in response to a really nasty bug I introduced that Dale tracked down, hopefully this won't happen in the future. Many thanks Dale. llvm-svn: 46254
-
Duncan Sands authored
integers. Handle truncstore of a legal type to an unusual number of bits. Most of this code is not reachable unless the new legalize infrastructure is turned on. llvm-svn: 46249
-
- Jan 21, 2008
-
-
Owen Anderson authored
llvm-svn: 46218
-
Owen Anderson authored
llvm-svn: 46217
-
Dale Johannesen authored
llvm-svn: 46204
-
- Jan 20, 2008
-
-
Dale Johannesen authored
llvm-svn: 46195
-
- Jan 18, 2008
-
-
Chris Lattner authored
llvm-svn: 46171
-
- Jan 17, 2008
-
-
Chris Lattner authored
1. Legalize now always promotes truncstore of i1 to i8. 2. Remove patterns and gunk related to truncstore i1 from targets. 3. Rename the StoreXAction stuff to TruncStoreAction in TLI. 4. Make the TLI TruncStoreAction table a 2d table to handle from/to conversions. 5. Mark a wide variety of invalid truncstores as such in various targets, e.g. X86 currently doesn't support truncstore of any of its integer types. 6. Add legalize support for truncstores with invalid value input types. 7. Add a dag combine transform to turn store(truncate) into truncstore when safe. The later allows us to compile CodeGen/X86/storetrunc-fp.ll to: _foo: fldt 20(%esp) fldt 4(%esp) faddp %st(1) movl 36(%esp), %eax fstps (%eax) ret instead of: _foo: subl $4, %esp fldt 24(%esp) fldt 8(%esp) faddp %st(1) fstps (%esp) movl 40(%esp), %eax movss (%esp), %xmm0 movss %xmm0, (%eax) addl $4, %esp ret llvm-svn: 46140
-
Chris Lattner authored
llvm-svn: 46126
-
Chris Lattner authored
and switch various codegen pieces and the X86 backend over to using it. * Add some comments to SelectionDAGNodes.h * Introduce a second argument to FP_ROUND, which indicates whether the FP_ROUND changes the value of its input. If not it is safe to xform things like fp_extend(fp_round(x)) -> x. llvm-svn: 46125
-
Evan Cheng authored
and the spill is its kill. However, if the local allocator has determined the register has not been modified (possible when its value was reloaded), it would not issue a restore. In that case, mark the last use of the virtual register as kill. llvm-svn: 46111
-
Evan Cheng authored
llvm-svn: 46104
-
Evan Cheng authored
It's not safe to use the two value CombineTo variant to combine away a dead load. e.g. v1, chain2 = load chain1, loc v2, chain3 = load chain2, loc v3 = add v2, c Now we replace use of v1 with undef, use of chain2 with chain1. ReplaceAllUsesWith() will iterate through uses of the first load and update operands: v1, chain2 = load chain1, loc v2, chain3 = load chain1, loc v3 = add v2, c Now the second load is the same as the first load, SelectionDAG cse will ensure the use of second load is replaced with the first load. v1, chain2 = load chain1, loc v3 = add v1, c Then v1 is replaced with undef and bad things happen. llvm-svn: 46099
-
- Jan 16, 2008
-
-
Dale Johannesen authored
associated function is so marked. llvm-svn: 46088
-
Chris Lattner authored
simplification. This fixes automotive-basicmath on PPC. llvm-svn: 46072
-
Chris Lattner authored
pattern to use EmitStackConvert now. llvm-svn: 46066
-
Chris Lattner authored
it to allow it to emit different load and store kinds. llvm-svn: 46065
-
Chris Lattner authored
instead of inlining its body. llvm-svn: 46062
-
Chris Lattner authored
into the ANY_EXTEND/ZERO_EXTEND/SIGN_EXTEND code to simplify it. Unmerge the code for FP_ROUND and FP_EXTEND from each other to make each one simpler. llvm-svn: 46061
-
Chris Lattner authored
a public SDOperand::reachesChainWithoutSideEffects method. No functionality change. llvm-svn: 46050
-
Dale Johannesen authored
ShortenEHDataFor64Bits as a not-very-accurate abstraction to cover all the changes in DwarfWriter. Some cosmetic changes to Darwin assembly code for gcc testsuite compatibility. llvm-svn: 46029
-
- Jan 15, 2008
-
-
Owen Anderson authored
Move some calls to getVRegDef higher in the callgraph, so they don't get executed as frequently in performance sensitive code. llvm-svn: 46027
-
Chris Lattner authored
it's a function pointer) not MVT::Other. This fixes builtin_trap lowering on ppc, alpha, ia64 llvm-svn: 46018
-
Owen Anderson authored
llvm-svn: 46016
-
Chris Lattner authored
llvm-svn: 46014
-
Evan Cheng authored
llvm-svn: 46002
-
Anton Korobeynikov authored
as well as PPC codegen llvm-svn: 46001
-
Evan Cheng authored
llvm-svn: 45995
-
- Jan 14, 2008
-
-
Chris Lattner authored
llvm-svn: 45972
-
Chris Lattner authored
llvm-svn: 45971
-
- Jan 13, 2008
-
-
Duncan Sands authored
a pointer to a struct. llvm-svn: 45939
-
- Jan 12, 2008
-
-
Chris Lattner authored
has no stores between the load and the end of block. This works great and sinks hundreds of stores, but we can't turn it on because machineinstrs don't have volatility information and we don't want to sink volatile stores :( llvm-svn: 45894
-
- Jan 11, 2008
-
-
Chris Lattner authored
both work right according to the new flags. This removes the TII::isReallySideEffectFree predicate, and adds TII::isInvariantLoad. It removes NeverHasSideEffects+MayHaveSideEffects and adds UnmodeledSideEffects as machine instr flags. Now the clients can decide everything they need. I think isRematerializable can be implemented in terms of the flags we have now, though I will let others tackle that. llvm-svn: 45843
-
- Jan 10, 2008
-
-
Chris Lattner authored
llvm-svn: 45841
-
Duncan Sands authored
Likewise fix up a bunch of other libcalls. While there I remove NEG_F32 and NEG_F64 since they are not used anywhere. This fixes 9 Ada ACATS failures. llvm-svn: 45833
-
Evan Cheng authored
llvm-svn: 45831
-