Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add the necessary support to the ISel to allow targets to codegen the new | Nate Begeman | 2005-11-06 | 3 | -8/+42 |
| | | | | | | | | alignment information appropriately. Includes code for PowerPC to support fixed-size allocas with alignment larger than the stack. Support for arbitrarily aligned dynamic allocas coming soon. llvm-svn: 24224 | ||||
* | minor clarity changes, no functionality difference. | Chris Lattner | 2005-11-06 | 1 | -2/+2 |
| | | | | llvm-svn: 24223 | ||||
* | don't misencode CC#'s | Chris Lattner | 2005-11-06 | 2 | -4/+5 |
| | | | | llvm-svn: 24219 | ||||
* | encode/decode function alignment in bc files | Chris Lattner | 2005-11-06 | 2 | -24/+30 |
| | | | | llvm-svn: 24218 | ||||
* | Read/write global variable alignments if present | Chris Lattner | 2005-11-06 | 2 | -6/+37 |
| | | | | llvm-svn: 24216 | ||||
* | print alignment info for globals and functions | Chris Lattner | 2005-11-06 | 1 | -0/+7 |
| | | | | llvm-svn: 24212 | ||||
* | regenerate | Chris Lattner | 2005-11-06 | 1 | -785/+793 |
| | | | | llvm-svn: 24211 | ||||
* | Allow globals to have an alignment specified. Switch to using isPowerOf2_32 | Chris Lattner | 2005-11-06 | 1 | -13/+25 |
| | | | | | | at Jim's request for the checking code. llvm-svn: 24210 | ||||
* | regenerate | Chris Lattner | 2005-11-06 | 1 | -820/+775 |
| | | | | llvm-svn: 24208 | ||||
* | factor optional alignment | Chris Lattner | 2005-11-06 | 1 | -34/+23 |
| | | | | llvm-svn: 24207 | ||||
* | ask for 16-byte aligned jmpbufs. This should unbreak C++ on IA64 (and | Duraid Madina | 2005-11-06 | 1 | -1/+2 |
| | | | | | | | a bunch of other things) but is currently ignored by the code generator. llvm-svn: 24206 | ||||
* | Write/read allocation instruction alignment info to .bc files. | Chris Lattner | 2005-11-05 | 2 | -8/+21 |
| | | | | llvm-svn: 24203 | ||||
* | verify that alignments are always a power of 2 | Chris Lattner | 2005-11-05 | 1 | -0/+2 |
| | | | | llvm-svn: 24200 | ||||
* | regenerate | Chris Lattner | 2005-11-05 | 1 | -164/+176 |
| | | | | llvm-svn: 24199 | ||||
* | Verify that alignment amounts are a power of 2 | Chris Lattner | 2005-11-05 | 1 | -0/+12 |
| | | | | llvm-svn: 24198 | ||||
* | fix printing the alignment directive | Chris Lattner | 2005-11-05 | 1 | -1/+1 |
| | | | | llvm-svn: 24197 | ||||
* | Add support alignment of allocation instructions. | Nate Begeman | 2005-11-05 | 11 | -3285/+2650 |
| | | | | | | | | | Add support for specifying alignment and size of setjmp jmpbufs. No targets currently do anything with this information, nor is it presrved in the bytecode representation. That's coming up next. llvm-svn: 24196 | ||||
* | add a case Nate sent me | Chris Lattner | 2005-11-05 | 1 | -0/+23 |
| | | | | llvm-svn: 24195 | ||||
* | Implement Transforms/TailCallElim/return-undef.ll, a trivial case | Chris Lattner | 2005-11-05 | 1 | -0/+1 |
| | | | | | | that has been sitting in my inbox since May 18. :) llvm-svn: 24194 | ||||
* | Turn sdiv into udiv if both operands have a clear sign bit. This occurs | Chris Lattner | 2005-11-05 | 1 | -0/+19 |
| | | | | | | | | | | | | | | | | | a few times in crafty: OLD: %tmp.36 = div int %tmp.35, 8 ; <int> [#uses=1] NEW: %tmp.36 = div uint %tmp.35, 8 ; <uint> [#uses=0] OLD: %tmp.19 = div int %tmp.18, 8 ; <int> [#uses=1] NEW: %tmp.19 = div uint %tmp.18, 8 ; <uint> [#uses=0] OLD: %tmp.117 = div int %tmp.116, 8 ; <int> [#uses=1] NEW: %tmp.117 = div uint %tmp.116, 8 ; <uint> [#uses=0] OLD: %tmp.92 = div int %tmp.91, 8 ; <int> [#uses=1] NEW: %tmp.92 = div uint %tmp.91, 8 ; <uint> [#uses=0] Which all turn into shrs. llvm-svn: 24190 | ||||
* | Turn srem -> urem when neither input has their sign bit set. This triggers | Chris Lattner | 2005-11-05 | 1 | -1/+19 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | 8 times in vortex, allowing the srems to be turned into shrs: OLD: %tmp.104 = rem int %tmp.5.i37, 16 ; <int> [#uses=1] NEW: %tmp.104 = rem uint %tmp.5.i37, 16 ; <uint> [#uses=0] OLD: %tmp.98 = rem int %tmp.5.i24, 16 ; <int> [#uses=1] NEW: %tmp.98 = rem uint %tmp.5.i24, 16 ; <uint> [#uses=0] OLD: %tmp.91 = rem int %tmp.5.i19, 8 ; <int> [#uses=1] NEW: %tmp.91 = rem uint %tmp.5.i19, 8 ; <uint> [#uses=0] OLD: %tmp.88 = rem int %tmp.5.i14, 8 ; <int> [#uses=1] NEW: %tmp.88 = rem uint %tmp.5.i14, 8 ; <uint> [#uses=0] OLD: %tmp.85 = rem int %tmp.5.i9, 1024 ; <int> [#uses=2] NEW: %tmp.85 = rem uint %tmp.5.i9, 1024 ; <uint> [#uses=0] OLD: %tmp.82 = rem int %tmp.5.i, 512 ; <int> [#uses=2] NEW: %tmp.82 = rem uint %tmp.5.i1, 512 ; <uint> [#uses=0] OLD: %tmp.48.i = rem int %tmp.5.i.i161, 4 ; <int> [#uses=1] NEW: %tmp.48.i = rem uint %tmp.5.i.i161, 4 ; <uint> [#uses=0] OLD: %tmp.20.i2 = rem int %tmp.5.i.i, 4 ; <int> [#uses=1] NEW: %tmp.20.i2 = rem uint %tmp.5.i.i, 4 ; <uint> [#uses=0] it also occurs 9 times in gcc, but with odd constant divisors (1009 and 61) so the payoff isn't as great. llvm-svn: 24189 | ||||
* | Fix logic bug in finding retry slot in tally. | Jim Laskey | 2005-11-05 | 1 | -15/+33 |
| | | | | llvm-svn: 24188 | ||||
* | Fix a warning | Jim Laskey | 2005-11-04 | 1 | -0/+1 |
| | | | | llvm-svn: 24187 | ||||
* | oops, forgot to load GP for indirect calls, though the old code now commented | Duraid Madina | 2005-11-04 | 1 | -4/+21 |
| | | | | | | | | | out failed (e.g. methcall) - now the code compiles, though it's not quite right just yet (tm) ;) would fix this but it's 3am! :O llvm-svn: 24186 | ||||
* | kill redundant SP/GP/RP save/restores across calls | Duraid Madina | 2005-11-04 | 1 | -2/+3 |
| | | | | llvm-svn: 24183 | ||||
* | add support for loading bools | Duraid Madina | 2005-11-04 | 1 | -1/+7 |
| | | | | llvm-svn: 24182 | ||||
* | Scheduling now uses itinerary data. | Jim Laskey | 2005-11-04 | 1 | -166/+201 |
| | | | | llvm-svn: 24180 | ||||
* | fun with predicates! (add TRUNC i64->i1, AND i1 i1, fix XOR i1 i1) | Duraid Madina | 2005-11-04 | 1 | -41/+97 |
| | | | | llvm-svn: 24175 | ||||
* | add pattern to load constant 0 into a predicate reg | Duraid Madina | 2005-11-03 | 1 | -0/+2 |
| | | | | llvm-svn: 24164 | ||||
* | Fix a bug that prevented this pattern from matching | Chris Lattner | 2005-11-03 | 1 | -1/+1 |
| | | | | llvm-svn: 24161 | ||||
* | Fix a crash that Andrew noticed, and add a pair of braces to unfconfuse | Nate Begeman | 2005-11-02 | 1 | -5/+5 |
| | | | | | | XCode's indenting. llvm-svn: 24159 | ||||
* | make this 64 bit clean, fixed test30 of ↵ | Andrew Lenharth | 2005-11-02 | 1 | -1/+1 |
| | | | | | | /Regression/Transforms/InstCombine/add.ll llvm-svn: 24158 | ||||
* | Fix a QOI issue noticed by Markus F.X.J. Oberhumer. | Chris Lattner | 2005-11-02 | 1 | -0/+1 |
| | | | | | | This fixes PR641 llvm-svn: 24154 | ||||
* | "fix" support for FP constants (this code asserts in the scheduler, | Duraid Madina | 2005-11-02 | 1 | -2/+4 |
| | | | | | | though) llvm-svn: 24152 | ||||
* | add F0 and F1 to the FP register class | Duraid Madina | 2005-11-02 | 1 | -3/+19 |
| | | | | llvm-svn: 24151 | ||||
* | This works now | Chris Lattner | 2005-11-02 | 1 | -2/+1 |
| | | | | llvm-svn: 24150 | ||||
* | add support for SELECT to TargetSelectionDAG.td, add support for | Duraid Madina | 2005-11-02 | 2 | -31/+43 |
| | | | | | | selecting ints to IA64, and a few other ia64 bits and pieces llvm-svn: 24147 | ||||
* | add support for loading FP constants +0.0 and +1.0 to the dag isel, | Duraid Madina | 2005-11-02 | 2 | -3/+8 |
| | | | | | | stop pretending -0.0 and -1.0 are machine constants llvm-svn: 24146 | ||||
* | Fix a source of undefined behavior when dealing with 64-bit types. This | Chris Lattner | 2005-11-02 | 1 | -1/+1 |
| | | | | | | may fix PR652. Thanks to Andrew for tracking down the problem. llvm-svn: 24145 | ||||
* | Allow itineraries to be passed through the Target Machine. | Jim Laskey | 2005-11-01 | 4 | -5/+21 |
| | | | | llvm-svn: 24139 | ||||
* | heh, scheduling was easy? | Duraid Madina | 2005-11-01 | 1 | -1/+3 |
| | | | | | | need to send chris, jim and sampo a box of fish each llvm-svn: 24135 | ||||
* | FORTRAN!!! :( and other similarly unfortunate things mean that on ia64 | Duraid Madina | 2005-11-01 | 1 | -0/+20 |
| | | | | | | one sometimes needs to pass FP args in both FP *and* integer registers. llvm-svn: 24134 | ||||
* | so tablegen was thinking I might want to convert FPs to predicates. | Duraid Madina | 2005-11-01 | 1 | -4/+3 |
| | | | | | | clever little tablegen! llvm-svn: 24133 | ||||
* | add support for int->FP and FP->int ops, and add ia64 patterns for these | Duraid Madina | 2005-11-01 | 2 | -0/+23 |
| | | | | llvm-svn: 24132 | ||||
* | add zeroextend predicate->integer | Duraid Madina | 2005-11-01 | 1 | -37/+42 |
| | | | | llvm-svn: 24131 | ||||
* | Add a flag to enable a darwin linker optimization | Chris Lattner | 2005-11-01 | 1 | -1/+7 |
| | | | | llvm-svn: 24130 | ||||
* | Make constant pool entries use private labels. This is important when you're | Chris Lattner | 2005-10-31 | 1 | -3/+3 |
| | | | | | | not compiling a whole program at a time :) llvm-svn: 24129 | ||||
* | Fix an iterator invalidation problem in code used by the -strip pass | Chris Lattner | 2005-10-31 | 1 | -1/+1 |
| | | | | llvm-svn: 24124 | ||||
* | Limit the search depth of MaskedValueIsZero to 6 instructions, to avoid | Chris Lattner | 2005-10-31 | 1 | -10/+14 |
| | | | | | | | bad cases. This fixes Markus's second testcase in PR639, and should seal it for good. llvm-svn: 24123 | ||||
* | 1. Embed and not inherit vector for NodeGroup. | Jim Laskey | 2005-10-31 | 1 | -20/+39 |
| | | | | | | | | 2. Iterate operands and not uses (performance.) 3. Some long pending comment changes. llvm-svn: 24119 |