- Apr 09, 2010
-
-
Chris Lattner authored
"On SPU, variables in the .bss section that are allocated with the .lcomm directive are not aligned on 16 byte boundaries. This causes misaligned loads, as the generated assembly assumes this "default" alignment. this patch disables .lcomm in favour of '.local .comm' Patch by Kalle Raisklia! llvm-svn: 100875
-
- Apr 07, 2010
-
-
Dale Johannesen authored
those who don't build all targets. llvm-svn: 100688
-
- Mar 29, 2010
-
-
Chris Lattner authored
"the bigstack patch for SPU, with testcase. It is essentially the patch committed as 97091, and reverted as 97099, but with the following additions: -in vararg handling, registers are marked to be live, to not confuse the register scavenger -function prologue and epilogue are not emitted, if the stack size is 16. 16 means it is empty - there is only the register scavenger emergency spill slot, which is not used as there is no stack." llvm-svn: 99819
-
- Mar 05, 2010
-
-
Chris Lattner authored
llvm-svn: 97814
-
- Jan 19, 2010
-
-
Chris Lattner authored
llvm-svn: 93869
-
- Jan 06, 2010
-
-
Evan Cheng authored
(OP (trunc x), (trunc y)) -> (trunc (OP x, y)) Unfortunately this simple change causes dag combine to infinite looping. The problem is the shrink demanded ops optimization tend to canonicalize expressions in the opposite manner. That is badness. This patch disable those optimizations in dag combine but instead it is done as a late pass in sdisel. This also exposes some deficiencies in dag combine and x86 setcc / brcond lowering. Teach them to look pass ISD::TRUNCATE in various places. llvm-svn: 92849
-
- Jan 05, 2010
-
-
Dan Gohman authored
llvm-svn: 92740
-
- Dec 17, 2009
-
-
Evan Cheng authored
Fold (zext (and x, cst)) -> (and (zext x), cst) DAG combiner likes to optimize expression in the other way so this would end up cause an infinite looping. llvm-svn: 91574
-
- Dec 15, 2009
-
-
Evan Cheng authored
llvm-svn: 91380
-
- Dec 09, 2009
-
-
Evan Cheng authored
llvm-svn: 90925
-
- Oct 22, 2009
-
-
Dan Gohman authored
to break up CFG diamonds by banishing one of the blocks to the end of the function, which is bad for code density and branch size. This does pessimize MultiSource/Benchmarks/Ptrdist/yacr2, the benchmark cited as the reason for the change, however I've examined the code and it looks more like a case of gaming a particular branch than of being generally applicable. llvm-svn: 84803
-
- Oct 19, 2009
-
-
Daniel Dunbar authored
llvm-svn: 84460
-
- Sep 11, 2009
-
-
Dan Gohman authored
llvm-svn: 81545
-
- Sep 09, 2009
-
-
Dan Gohman authored
llvm-svn: 81293
-
- Aug 26, 2009
-
-
Scott Michel authored
llvm-svn: 80042
-
- Aug 25, 2009
-
-
Dan Gohman authored
llvm-svn: 79992
-
Scott Michel authored
code, according to Anton (I'm not totally convinced, but we can always resurrect patches if we need to do so.) - Start moving CellSPU's tests to prefer FileCheck. llvm-svn: 79958
-
Scott Michel authored
llvm-svn: 79953
-
Scott Michel authored
(IBM). llvm-svn: 79949
-
- Jun 16, 2009
-
-
Eli Friedman authored
support for x86, and UMULO/SMULO for many architectures, including PPC (PR4201), ARM, and Cell. The resulting expansion isn't perfect, but it's not bad. llvm-svn: 73477
-
- Jun 05, 2009
-
-
Dan Gohman authored
integer and floating-point opcodes, introducing FAdd, FSub, and FMul. For now, the AsmParser, BitcodeReader, and IRBuilder all preserve backwards compatability, and the Core LLVM APIs preserve backwards compatibility for IR producers. Most front-ends won't need to change immediately. This implements the first step of the plan outlined here: http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt llvm-svn: 72897
-
- Mar 25, 2009
-
-
Evan Cheng authored
Also fixes SDISel so it *does not* force promote return value if the function is not marked signext / zeroext. llvm-svn: 67701
-
- Mar 18, 2009
-
-
Rafael Espindola authored
Some architectures (like x86) don't require it. This fixes bug 3779. llvm-svn: 67132
-
- Mar 17, 2009
-
-
Scott Michel authored
Revert inadvertent mis-fix of fneg. llvm-svn: 67084
-
Scott Michel authored
- Fix fabs, fneg for f32 and f64. - Use BuildVectorSDNode.isConstantSplat, now that the functionality exists - Continue to improve i64 constant lowering. Lower certain special constants to the constant pool when they correspond to SPU's shufb instruction's special mask values. This avoids the overhead of performing a shuffle on a zero-filled vector just to get the special constant when the memory load suffices. llvm-svn: 67067
-
- Mar 16, 2009
-
-
Scott Michel authored
Incorporate Tilmann's 128-bit operation patch. Evidently, it gets the llvm-gcc bootstrap a bit further along. llvm-svn: 67048
-
- Jan 31, 2009
-
-
Mon P Wang authored
llvm-svn: 63475
-
- Jan 26, 2009
-
-
Scott Michel authored
- Rename fcmp.ll test to fcmp32.ll, start adding new double tests to fcmp64.ll - Fix select_bits.ll test - Capitulate to the DAGCombiner and move i64 constant loads to instruction selection (SPUISelDAGtoDAG.cpp). <rant>DAGCombiner will insert all kinds of 64-bit optimizations after operation legalization occurs and now we have to do most of the work that instruction selection should be doing twice (once to determine if v2i64 build_vector can be handled by SelectCode(), which then runs all of the predicates a second time to select the necessary instructions.) But, CellSPU is a good citizen.</rant> llvm-svn: 62990
-
- Jan 21, 2009
-
-
Duncan Sands authored
llvm-svn: 62682
-
Scott Michel authored
- Ensure that (operation) legalization emits proper FDIV libcall when needed. - Fix various bugs encountered during llvm-spu-gcc build, along with various cleanups. - Start supporting double precision comparisons for remaining libgcc2 build. Discovered interesting DAGCombiner feature, which is currently solved via custom lowering (64-bit constants are not legal on CellSPU, but DAGCombiner insists on inserting one anyway.) - Update README. llvm-svn: 62664
-
- Jan 15, 2009
-
-
Rafael Espindola authored
llvm-svn: 62279
-
Scott Michel authored
sequences in SPUDAGToDAGISel.cpp and SPU64InstrInfo.td, killing custom DAG node types as needed. - i64 mul is now a legal instruction, but emits an instruction sequence that stretches tblgen and the imagination, as well as violating laws of several small countries and most southern US states (just kidding, but looking at a function with 80+ parameters is really weird and just plain wrong.) - Update tests as needed. llvm-svn: 62254
-
- Jan 08, 2009
-
-
Misha Brukman authored
The error was reported by gcc-4.3.0 during compilation. llvm-svn: 61896
-
- Jan 06, 2009
-
-
Scott Michel authored
- Fix bugs 3194, 3195: i128 load/stores produce correct code (although, we need to ensure that i128 is 16-byte aligned in real life), and 128 zero- extends are supported. - New td file: SPU128InstrInfo.td: this is where all new i128 support should be put in the future. - Continue to hammer on i64 operations and test cases; ensure that the only remaining problem will be i64 mul. llvm-svn: 61784
-
- Jan 05, 2009
-
-
Scott Michel authored
- Teach SPU64InstrInfo.td about the remaining signed comparisons, update tests accordingly. llvm-svn: 61672
-
Scott Michel authored
- Add an 8-bit operation test, which doesn't do much at this point. llvm-svn: 61665
-
Scott Michel authored
- Fix (brcond (setq ...)) bug, where BRNZ should have been used vice BRZ. - Kill unused/unnecessary nodes in SPUNodes.td - Beef out the i64operations.c test harness to use a lot of unaligned loads, test loops and LLVM loop/basic block optimizations; run the test harness successfully on real Cell hardware. llvm-svn: 61664
-
- Jan 03, 2009
-
-
Scott Michel authored
- Remove custom lowering for BRCOND - Add remaining functionality for branches in SPUInstrInfo, such as branch condition reversal and load/store folding. Updated BrCond test to reflect branch reversal. llvm-svn: 61597
-
- Jan 01, 2009
-
-
Duncan Sands authored
promote from i1 all the way up to the canonical SetCC type. In order to discover an appropriate type to use, pass MVT::Other to getSetCCResultType. In order to be able to do this, change getSetCCResultType to take a type as an argument, not a value (this is also more logical). llvm-svn: 61542
-
- Dec 31, 2008
-
-
Bill Wendling authored
llvm-svn: 61533
-