summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Revert Christopher Lamb's load/store alignment changes.Reid Spencer2007-04-211-7/+5
| | | | llvm-svn: 36309
* add support for alignment attributes on load/store instructionsChristopher Lamb2007-04-211-5/+7
| | | | llvm-svn: 36301
* disable switch lowering using shift/and. It still breaks ppc bootstrap forChris Lattner2007-04-141-0/+1
| | | | | | some reason. :( Will investigate. llvm-svn: 36011
* Fix PR1325: Case range optimization was performed in the case itAnton Korobeynikov2007-04-141-4/+2
| | | | | | shouldn't. Also fix some "latent" bug on 64-bit platforms llvm-svn: 35990
* disable shift/and lowering to work around PR1325 for now.Chris Lattner2007-04-141-1/+3
| | | | llvm-svn: 35985
* Fix PR1323 : we haven't updated phi nodes in good manner :)Anton Korobeynikov2007-04-131-0/+1
| | | | llvm-svn: 35963
* the result of an inline asm copy can be an arbitrary VT that the registerChris Lattner2007-04-121-4/+21
| | | | | | | | class supports. In the case of vectors, this means we often get the wrong type (e.g. we get v4f32 instead of v8i16). Make sure to convert the vector result to the right type. This fixes CodeGen/X86/2007-04-11-InlineAsmVectorResult.ll llvm-svn: 35944
* For PR1284:Reid Spencer2007-04-121-1/+6
| | | | | | Implement the "part_set" intrinsic. llvm-svn: 35938
* For PR1146:Reid Spencer2007-04-111-13/+13
| | | | | | | Put the parameter attributes in their own ParamAttr name space. Adjust the rest of llvm as a result. llvm-svn: 35877
* apparently some people commit without building the tree, or they forget toChris Lattner2007-04-101-1/+1
| | | | | | commit a LOT of files. llvm-svn: 35858
* No longer needed.Jeff Cohen2007-04-091-1/+0
| | | | llvm-svn: 35850
* Use integer log for metric calculationAnton Korobeynikov2007-04-091-2/+2
| | | | llvm-svn: 35834
* Unbreak VC++ build.Jeff Cohen2007-04-091-2/+3
| | | | llvm-svn: 35817
* Next stage into switch lowering refactoringAnton Korobeynikov2007-04-091-19/+340
| | | | | | | | | | 1. Fix some bugs in the jump table lowering threshold 2. Implement much better metric for optimal pivot selection 3. Tune thresholds for different lowering methods 4. Implement shift-and trick for lowering small (<machine word length) cases with few destinations. Good testcase will follow. llvm-svn: 35816
* For PR1146:Reid Spencer2007-04-091-13/+17
| | | | | | Adapt handling of parameter attributes to use the new ParamAttrsList class. llvm-svn: 35814
* implement CodeGen/X86/inline-asm-x-scalar.ll:test3Chris Lattner2007-04-091-2/+9
| | | | llvm-svn: 35802
* Fix PR1316Chris Lattner2007-04-091-4/+4
| | | | llvm-svn: 35783
* Fix for CodeGen/X86/2007-04-08-InlineAsmCrash.ll and PR1314Chris Lattner2007-04-081-1/+1
| | | | llvm-svn: 35779
* minor comment fixChris Lattner2007-04-061-1/+1
| | | | llvm-svn: 35696
* Change the bit_part_select (non)implementation from "return 0" to abort.Reid Spencer2007-04-051-3/+5
| | | | llvm-svn: 35679
* Implement the llvm.bit.part_select.iN.iN.iN overloaded intrinsic.Reid Spencer2007-04-041-0/+5
| | | | llvm-svn: 35678
* Properly emit range comparisons for switch cases, where neighbour casesAnton Korobeynikov2007-04-041-71/+181
| | | | | | | go to the same destination. Now we're producing really good code for switch-lower-feature.ll testcase llvm-svn: 35672
* For PR1297:Reid Spencer2007-04-011-24/+31
| | | | | | | Adjust for changes in the bit counting intrinsics. They all return i32 now so we have to trunc/zext the DAG node accordingly. llvm-svn: 35546
* move a bunch of code out of the sdisel pass into its own opt pass ↵Chris Lattner2007-03-311-483/+1
| | | | | | "codegenprepare". llvm-svn: 35529
* Scale 1 is always ok.Evan Cheng2007-03-281-1/+1
| | | | llvm-svn: 35407
* GEP index sinking fixes:Evan Cheng2007-03-281-40/+35
| | | | | | | | | 1) Take address scale into consideration. e.g. i32* -> scale 4. 2) Examine all the users of GEP. 3) Generalize to inter-block GEP's (no longer uses loopinfo). 4) Don't do xform if GEP has other variable index(es). llvm-svn: 35403
* Remove dead codeAnton Korobeynikov2007-03-271-82/+46
| | | | llvm-svn: 35380
* Split big monster into small helpers. No functionality change.Anton Korobeynikov2007-03-271-190/+285
| | | | llvm-svn: 35379
* SDISel does not preserve all, it changes CFG and other info.Evan Cheng2007-03-271-1/+0
| | | | llvm-svn: 35376
* First step of switch lowering refactoring: perform worklist-drivenAnton Korobeynikov2007-03-251-176/+249
| | | | | | strategy, emit JT's where possible. llvm-svn: 35338
* Implement support for vector operands to inline asm, implementingChris Lattner2007-03-251-4/+16
| | | | | | CodeGen/X86/2007-03-24-InlineAsmVectorOp.ll llvm-svn: 35332
* switch TargetLowering::getConstraintType to take the entire constraint,Chris Lattner2007-03-251-4/+4
| | | | | | not just the first letter. No functionality change. llvm-svn: 35322
* Change uses of Function::front to Function::getEntryBlock for readability.Dan Gohman2007-03-221-1/+1
| | | | llvm-svn: 35265
* Minor bug.Evan Cheng2007-03-201-1/+2
| | | | llvm-svn: 35219
* Use SmallSet instead of std::set.Evan Cheng2007-03-171-1/+1
| | | | llvm-svn: 35133
* If sdisel has decided to sink GEP index expression into any BB. Replace all usesEvan Cheng2007-03-171-22/+37
| | | | | | in that BB. llvm-svn: 35132
* Turn on GEP index sinking by default.Evan Cheng2007-03-161-7/+0
| | | | llvm-svn: 35127
* Stupid bug.Evan Cheng2007-03-161-1/+1
| | | | llvm-svn: 35126
* Sink a binary expression into its use blocks if it is a loop invariantEvan Cheng2007-03-161-0/+92
| | | | | | | computation used as GEP indexes and if the expression can be folded into target addressing mode of GEP load / store use types. llvm-svn: 35123
* implement support for floating point constants used as inline asm memory ↵Chris Lattner2007-03-081-2/+7
| | | | | | operands. llvm-svn: 35033
* make this fail even in non-assert builds.Chris Lattner2007-03-081-2/+4
| | | | llvm-svn: 35025
* Refactoring of formal parameter flags. Enable properly use ofAnton Korobeynikov2007-03-071-24/+27
| | | | | | zext/sext/aext stuff. llvm-svn: 35008
* Enumerate SDISel formal parameter attributes. Make use of newAnton Korobeynikov2007-03-061-22/+24
| | | | | | enumeration. llvm-svn: 34960
* Unbreak VC++ build.Jeff Cohen2007-03-051-1/+1
| | | | llvm-svn: 34917
* Lower eh filter intrinsic.Jim Laskey2007-03-011-1/+4
| | | | llvm-svn: 34802
* MERGE_VALUES unnecessary.Jim Laskey2007-02-281-12/+4
| | | | llvm-svn: 34750
* track signedness of formal argument, though we have a fixme here.Chris Lattner2007-02-261-0/+8
| | | | llvm-svn: 34620
* Fix for PR1224.Jim Laskey2007-02-251-35/+50
| | | | llvm-svn: 34610
* optimize duplicate ValueMap lookupsChris Lattner2007-02-251-9/+6
| | | | llvm-svn: 34599
* Deal with cases when MMI is not requested.Jim Laskey2007-02-241-0/+14
| | | | llvm-svn: 34556
OpenPOWER on IntegriCloud