aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Port the fix for the select operator from instcombine'sDan Gohman2008-05-201-2/+2
| | | | | | | ComputeNumSignBits to SelectionDAG's ComputeNumSignBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51348 91177308-0d34-0410-b5e6-96231b3b80d8
* Code simplification.Dan Gohman2008-05-201-6/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51345 91177308-0d34-0410-b5e6-96231b3b80d8
* Clarify that and/or/xor/sdiv etc all allow vectors.Chris Lattner2008-05-201-77/+186
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51335 91177308-0d34-0410-b5e6-96231b3b80d8
* Clarify copyright transfer when you don't own the copyright ofChris Lattner2008-05-201-2/+9
| | | | | | | the contributed code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51329 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename the last test with .llx extension to .ll, resolve duplicate test by ↵Gabor Greif2008-05-2075-88/+88
| | | | | | renaming to isnan2. Now that no test has llx ending there is no need to search for them from dg.exp too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51328 91177308-0d34-0410-b5e6-96231b3b80d8
* movsd and movq do not require 16-byte alignment. This fixes vec_set-5.ll on ↵Evan Cheng2008-05-201-4/+10
| | | | | | Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51327 91177308-0d34-0410-b5e6-96231b3b80d8
* "The two generated files in the AsmParser.vcproj are pointing to theChris Lattner2008-05-201-2/+2
| | | | | | | | | | wrong directory, this is the patch to fix it (also attached)." Patch by 'OvermindDL1' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51323 91177308-0d34-0410-b5e6-96231b3b80d8
* Clarify the testing documentation a bit and solve two HTML validator warnings.Matthijs Kooijman2008-05-201-5/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51313 91177308-0d34-0410-b5e6-96231b3b80d8
* More local spiller complexity!Evan Cheng2008-05-202-0/+84
| | | | | | | If local spiller optimization turns some instruction into an identity copy, it will be removed. If the output register happens to be dead (and source is obviously killed), transfer the kill / dead information to last use / def in the same MBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51306 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't spill dead def.Evan Cheng2008-05-202-1/+58
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51305 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typo.Matthijs Kooijman2008-05-201-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51303 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach instcombine 4 new xforms:Chris Lattner2008-05-203-3/+173
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (add (sext x), cst) --> (sext (add x, cst')) (add (sext x), (sext y)) --> (sext (add int x, y)) (add double (sitofp x), fpcst) --> (sitofp (add int x, intcst)) (add double (sitofp x), (sitofp y)) --> (sitofp (add int x, y)) This generally reduces conversions. For example MiBench/telecomm-gsm gets these simplifications: HACK2: %tmp67.i142.i.i = sext i16 %tmp6.i141.i.i to i32 ; <i32> [#uses=1] %tmp23.i139.i.i = sext i16 %tmp2.i138.i.i to i32 ; <i32> [#uses=1] %tmp8.i143.i.i = add i32 %tmp67.i142.i.i, %tmp23.i139.i.i ; <i32> [#uses=3] HACK2: %tmp67.i121.i.i = sext i16 %tmp6.i120.i.i to i32 ; <i32> [#uses=1] %tmp23.i118.i.i = sext i16 %tmp2.i117.i.i to i32 ; <i32> [#uses=1] %tmp8.i122.i.i = add i32 %tmp67.i121.i.i, %tmp23.i118.i.i ; <i32> [#uses=3] HACK2: %tmp67.i.i190.i = sext i16 %tmp6.i.i189.i to i32 ; <i32> [#uses=1] %tmp23.i.i187.i = sext i16 %tmp2.i.i186.i to i32 ; <i32> [#uses=1] %tmp8.i.i191.i = add i32 %tmp67.i.i190.i, %tmp23.i.i187.i ; <i32> [#uses=3] HACK2: %tmp67.i173.i.i.i = sext i16 %tmp6.i172.i.i.i to i32 ; <i32> [#uses=1] %tmp23.i170.i.i.i = sext i16 %tmp2.i169.i.i.i to i32 ; <i32> [#uses=1] %tmp8.i174.i.i.i = add i32 %tmp67.i173.i.i.i, %tmp23.i170.i.i.i ; <i32> [#uses=3] HACK2: %tmp67.i152.i.i.i = sext i16 %tmp6.i151.i.i.i to i32 ; <i32> [#uses=1] %tmp23.i149.i.i.i = sext i16 %tmp2.i148.i.i.i to i32 ; <i32> [#uses=1] %tmp8.i153.i.i.i = add i32 %tmp67.i152.i.i.i, %tmp23.i149.i.i.i ; <i32> [#uses=3] HACK2: %tmp67.i.i.i.i = sext i16 %tmp6.i.i.i.i to i32 ; <i32> [#uses=1] %tmp23.i.i5.i.i = sext i16 %tmp2.i.i.i.i to i32 ; <i32> [#uses=1] %tmp8.i.i7.i.i = add i32 %tmp67.i.i.i.i, %tmp23.i.i5.i.i ; <i32> [#uses=3] This also fixes a bug in ComputeNumSignBits handling select and makes it more aggressive with and/or. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51302 91177308-0d34-0410-b5e6-96231b3b80d8
* fix two issues Neil noticed, thanks!Chris Lattner2008-05-201-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51296 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a bool to isEdgeFeasible that tells it whether to treat unknownChris Lattner2008-05-202-10/+27
| | | | | | | value as undef or untracked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51295 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix ExecutionEngine's constant code to work properly when structs and arraysDan Gohman2008-05-201-17/+8
| | | | | | | will become first-class types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51293 91177308-0d34-0410-b5e6-96231b3b80d8
* Refine the fix in r51169 to only apply when the operand val beingDan Gohman2008-05-201-3/+4
| | | | | | | | | replaced is a PHI. This prevents it from inserting uses before defs in the case that it isn't a PHI and it depends on other instructions later in the block. This fixes the 447.dealII regression on x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51292 91177308-0d34-0410-b5e6-96231b3b80d8
* runOnMachineFunction should set IsPIC because relocation model may have been ↵Evan Cheng2008-05-201-0/+1
| | | | | | changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51291 91177308-0d34-0410-b5e6-96231b3b80d8
* Make AssociativeOpt static.Dan Gohman2008-05-201-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51290 91177308-0d34-0410-b5e6-96231b3b80d8
* Run vortex-bug as x86-64, which is what the original bug was triggered on.Dan Gohman2008-05-201-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51289 91177308-0d34-0410-b5e6-96231b3b80d8
* Silence a warning about "*/" outside a comment.Steve Naroff2008-05-201-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51287 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not erase induction variable increment if it is used outside the loop.Devang Patel2008-05-192-4/+61
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51280 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a ComputeNumSignBits function for use by instcombine, based on theDan Gohman2008-05-191-5/+149
| | | | | | | code in SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51279 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle quoted names when constructing $stub's,Dale Johannesen2008-05-196-39/+85
| | | | | | | | $non_lazy_ptr's and $lazy_ptr's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51277 91177308-0d34-0410-b5e6-96231b3b80d8
* switch to Type::getFPMantissaWidth instead of reinventing it.Chris Lattner2008-05-191-15/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51275 91177308-0d34-0410-b5e6-96231b3b80d8
* add a helper method.Chris Lattner2008-05-191-0/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51274 91177308-0d34-0410-b5e6-96231b3b80d8
* minor cleanups, teach instcombine that sitofp/uitofp cannot Chris Lattner2008-05-191-3/+8
| | | | | | | produce a negative zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51272 91177308-0d34-0410-b5e6-96231b3b80d8
* convert fptosi(sitofp x) -> x if the fp value has enough bits in its mantissaChris Lattner2008-05-192-9/+35
| | | | | | | | to accurately represent the integer. This triggers 9 times in 471.omnetpp, though 8 of those seem to be inlined from the same place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51271 91177308-0d34-0410-b5e6-96231b3b80d8
* Fold FP comparisons where one operand is converted from an integerChris Lattner2008-05-192-0/+185
| | | | | | | | | | | | | | | | | | | | | | type and the other operand is a constant into integer comparisons. This happens surprisingly frequently (e.g. 10 times in 471.omnetpp), which are things like this: %tmp8283 = sitofp i32 %tmp82 to double %tmp1013 = fcmp ult double %tmp8283, 0.0 Clearly comparing tmp82 against i32 0 is cheaper here. this also triggers 8 times in gobmk, including this one: %tmp375376 = sitofp i32 %tmp375 to double %tmp377 = fcmp ogt double %tmp375376, 8.150000e+01 which is comparing an integer against 81.5 :). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51268 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove warnings about unused parameters and shadowed variables.Bill Wendling2008-05-1918-97/+95
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51266 91177308-0d34-0410-b5e6-96231b3b80d8
* remove debug outputChris Lattner2008-05-191-3/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51264 91177308-0d34-0410-b5e6-96231b3b80d8
* be more aggressive about transforming add -> or when the operands have noChris Lattner2008-05-192-0/+34
| | | | | | | | | | | | | | | | | | | | | | intersecting bits. This triggers all over the place, for example in lencode, with adds of stuff like: %tmp580 = mul i32 %tmp579, 2 %tmp582 = and i32 %b8, 1 and %tmp28 = shl i32 %abs.i, 1 %sign.0 = select i1 %tmp23, i32 1, i32 0 and %tmp344 = shl i32 %tmp343, 2 %tmp346 = and i32 %tmp96, 3 etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51263 91177308-0d34-0410-b5e6-96231b3b80d8
* Check that always_inline functions are inlinedDuncan Sands2008-05-191-0/+12
| | | | | | | | | whether or not -funit-at-a-time is used (C++ uses it, C doesn't) - it was working before only when not doing unit-at-a-time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51258 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR2341 - when the length is 4 use an i32 notDuncan Sands2008-05-192-8/+24
| | | | | | | an i16! Cleaned up trailing whitespace while there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51240 91177308-0d34-0410-b5e6-96231b3b80d8
* Reverting accidental commit of generated files.Gordon Henriksen2008-05-193-287/+287
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51239 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a duplicative binding. Patch by Mahadevan R.Gordon Henriksen2008-05-196-296/+288
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51238 91177308-0d34-0410-b5e6-96231b3b80d8
* Update VS project files (VS 2005) so that VS builds with TOT LLVM/clang.Ted Kremenek2008-05-193-182/+187
| | | | | | | Patch by Dmitri Makarov! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51237 91177308-0d34-0410-b5e6-96231b3b80d8
* Grammar fix.Bill Wendling2008-05-191-1/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51236 91177308-0d34-0410-b5e6-96231b3b80d8
* Delete module.Bill Wendling2008-05-191-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51235 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert non-ASCII apostrophes into ASCII apostrophes.Bill Wendling2008-05-191-7/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51234 91177308-0d34-0410-b5e6-96231b3b80d8
* Delete the Module object.Bill Wendling2008-05-191-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51233 91177308-0d34-0410-b5e6-96231b3b80d8
* s/insure/ensure/Bill Wendling2008-05-191-3/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51232 91177308-0d34-0410-b5e6-96231b3b80d8
* ignore Output dirGabor Greif2008-05-180-0/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51231 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach GVN to not assert on vector comparisonsNate Begeman2008-05-181-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51230 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a backwards check in the JIT symbol table codeNate Begeman2008-05-181-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51229 91177308-0d34-0410-b5e6-96231b3b80d8
* add missing #include.Chris Lattner2008-05-181-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51227 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR2339Chris Lattner2008-05-182-1/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51226 91177308-0d34-0410-b5e6-96231b3b80d8
* remove empty file?Chris Lattner2008-05-181-0/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51225 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert constant-folding change that will miscompile in some cases.Nick Lewycky2008-05-172-31/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51223 91177308-0d34-0410-b5e6-96231b3b80d8
* trip count computation deficiencyChris Lattner2008-05-171-0/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51222 91177308-0d34-0410-b5e6-96231b3b80d8
* On Darwin, the string header file isn't 64-bit clean. The use ofBill Wendling2008-05-171-3/+3
| | | | | | | | | | | | | | | | | | | | "-Wshorten-64-to-32 -Werror" will cause a failure when compiling this complex program: #include <string> class Path { mutable std::string path; public: bool operator == (const Path &that) { return path == that.path; } }; Using strcmp gets us past this annoying error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51218 91177308-0d34-0410-b5e6-96231b3b80d8