aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add more IR support for the new extractvalue and insertvalueDan Gohman2008-05-233-12/+151
| | | | | | | instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51461 91177308-0d34-0410-b5e6-96231b3b80d8
* Use isSingleValueType instead of isFirstClassType toDan Gohman2008-05-231-2/+2
| | | | | | | exclude struct and array types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51460 91177308-0d34-0410-b5e6-96231b3b80d8
* Use isSingleValueType instead of isFirstClassType toDan Gohman2008-05-233-6/+6
| | | | | | | exclude struct and array types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51459 91177308-0d34-0410-b5e6-96231b3b80d8
* Put const weak stuff in appropriate section on Darwin.Dale Johannesen2008-05-231-1/+9
| | | | | | | | g++.dg/abi/key2.C git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51458 91177308-0d34-0410-b5e6-96231b3b80d8
* Make LTO expect common and weak to be represented differently.Dale Johannesen2008-05-231-11/+1
| | | | | | | | Reading .bc files from before that change will no longer work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51457 91177308-0d34-0410-b5e6-96231b3b80d8
* Use isSingleValueType instead of isFirstClassType toDan Gohman2008-05-232-2/+2
| | | | | | | exclude struct and array types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51456 91177308-0d34-0410-b5e6-96231b3b80d8
* X86CodeEmitter should not set PIC style to None at initialization time. This ↵Evan Cheng2008-05-221-3/+1
| | | | | | will break codegen if relocation model is changed to PIC_ later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51455 91177308-0d34-0410-b5e6-96231b3b80d8
* Use isSingleValueType instead of isFirstClassType toDan Gohman2008-05-221-1/+1
| | | | | | | exclude struct and array types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51452 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a polygen grammar definition for LLVM assembly language.Dan Gohman2008-05-221-0/+376
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51449 91177308-0d34-0410-b5e6-96231b3b80d8
* Recognize the "default" keyword, which is documented in LangRef.htmlDan Gohman2008-05-221-0/+1
| | | | | | | and supported in the grammar, in the lexer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51448 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a couple of test cases.Evan Cheng2008-05-222-0/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51441 91177308-0d34-0410-b5e6-96231b3b80d8
* When rewriting defs and uses after spilling, don't set the weight of aDavid Greene2008-05-221-1/+3
| | | | | | | | | live interval to infinity if the instruction being rewritten is an original remat def instruction. We were only checking against the clone of the remat def which doesn't actually appear in the IR at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51440 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't attempt to update SpillSlotToUsesMap for stack slots that aren'tDavid Greene2008-05-221-2/+14
| | | | | | | generated by the spiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51439 91177308-0d34-0410-b5e6-96231b3b80d8
* transform more loops to iterator form, detabifyGabor Greif2008-05-222-7/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51436 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing patterns.Evan Cheng2008-05-222-0/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51435 91177308-0d34-0410-b5e6-96231b3b80d8
* Suppress warnings about missing placement delete. This should now be ↵Gabor Greif2008-05-221-0/+5
| | | | | | std-conformant even if compiled with exceptions on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51429 91177308-0d34-0410-b5e6-96231b3b80d8
* Rewrite operand loops to use iterators. This shrinks .o file (at gcc4.0.1 ↵Gabor Greif2008-05-221-4/+5
| | | | | | -O3 x86) substantially (>500 bytes). Reason still unknown. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51423 91177308-0d34-0410-b5e6-96231b3b80d8
* fix an off-by-one error in my previous patch, don't treat the callee as a ↵Chris Lattner2008-05-221-10/+9
| | | | | | incoming arg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51422 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for multiple-return values in inline asm. This shouldChris Lattner2008-05-222-34/+61
| | | | | | | | get inline asm working as well as it did previously with the CBE with the new MRV support for inline asm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51420 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR2267, by allowing indirect outputs to be intermixedChris Lattner2008-05-221-1/+4
| | | | | | | | with normal outputs. Testcase here: test/CodeGen/X86/asm-indirect-mem.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51409 91177308-0d34-0410-b5e6-96231b3b80d8
* testcase for PR2267Chris Lattner2008-05-221-0/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51408 91177308-0d34-0410-b5e6-96231b3b80d8
* Free and vaarg are not really volatile.Chris Lattner2008-05-221-9/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51407 91177308-0d34-0410-b5e6-96231b3b80d8
* rewrite the validity checking for memory promotion to be simpler,Chris Lattner2008-05-221-49/+52
| | | | | | | | more aggressive, and more correct. Verify that we only attempt to promote loads and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51406 91177308-0d34-0410-b5e6-96231b3b80d8
* minor editsChris Lattner2008-05-221-7/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51405 91177308-0d34-0410-b5e6-96231b3b80d8
* Use 'continue' to reduce nesting in this loop. No functionality change.Chris Lattner2008-05-221-54/+51
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51399 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a Type::isSingleValueType method. This will be used by codeDan Gohman2008-05-211-1/+11
| | | | | | | | | | that currently uses Type::isFirstClassType and depends on it returning false for struct or array types. This commit doesn't change the behavior of Type::isFirstClassType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51396 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR2343. An *interesting* coalescer bug.Evan Cheng2008-05-212-1/+124
| | | | | | | | | | | | | | | BB1: vr1025 = copy vr1024 .. BB2: vr1024 = op = op vr1025 <loop eventually branch back to BB1> Even though vr1025 is copied from vr1024, it's not safe to coalesced them since live range of vr1025 intersects the def of vr1024. This happens when vr1025 is assigned the value of the previous iteration of vr1024 in the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51394 91177308-0d34-0410-b5e6-96231b3b80d8
* Follow-up to the reverting of r51218. This puts the checks out-of-line. BecauseBill Wendling2008-05-212-9/+15
| | | | | | | | | they aren't in the header file, systems with a <string> header file that isn't 64-bit clean shouldn't warn if #including Path.h and specifying -Wshorten-64-to-32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51393 91177308-0d34-0410-b5e6-96231b3b80d8
* update a commentGabor Greif2008-05-211-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51390 91177308-0d34-0410-b5e6-96231b3b80d8
* adapt to new APIGabor Greif2008-05-212-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51387 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename -no-lazy to -disable-lazy-compilation.Evan Cheng2008-05-211-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51386 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a couple issues with the JIT and multiple modules:Nate Begeman2008-05-214-10/+82
| | | | | | | | | | | | | | 1. The "JITState" object creates a PassManager with the ModuleProvider that the jit is created with. If the ModuleProvider is removed and deleted, the PassManager is invalid. 2. The Global maps in the JIT were not invalidated with a ModuleProvider was removed. This could lead to a case where the Module would be freed, and a new Module with Globals at the same addresses could return invalid results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51384 91177308-0d34-0410-b5e6-96231b3b80d8
* resurrect lost tests by renaming them to not end with .trGabor Greif2008-05-2125-0/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51375 91177308-0d34-0410-b5e6-96231b3b80d8
* suppress gcc3.4.6's <no value returned> warningsGabor Greif2008-05-211-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51372 91177308-0d34-0410-b5e6-96231b3b80d8
* When LSR is replacing an instruction, callDan Gohman2008-05-211-7/+10
| | | | | | | | | | | | | | | | | | | | | ScalarEvolution::deleteValueFromRecords on it before doing the replaceAllUsesWith, because ScalarEvolution looks at the instruction's users to find SCEV references to the instruction's SCEV object in its internal maps. Move all of LSR's loop-related state clearing after processing the loop and before cleaning up dead PHI nodes. This eliminates all of LSR's SCEV references just before the calls to ScalarEvolution::deleteValueFromRecords so that when ScalarEvolution drops its own SCEV references, the reference counts will reach zero and the SCEVs will be deleted immediately. These changes fix some compiler aborts involving ScalarEvolution holding onto and reusing SCEV objects for instructions that have been deleted. No regression test unfortunately; because the symptoms were due to dangling pointers, reduced testcases ended up being fairly arbitrary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51359 91177308-0d34-0410-b5e6-96231b3b80d8
* Reverting r51218 because of breakage on PPC32.Bill Wendling2008-05-201-4/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51358 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate questionable syntax for stdin redirection. This probably also ↵Gabor Greif2008-05-2093-94/+94
| | | | | | speeds things up a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51357 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR2346 by marking vaarg as volatile so that licm doesn't try toChris Lattner2008-05-202-1/+34
| | | | | | | hoist them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51356 91177308-0d34-0410-b5e6-96231b3b80d8
* Oops, commit the version of this test that actually works.Dan Gohman2008-05-201-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51351 91177308-0d34-0410-b5e6-96231b3b80d8
* Port SelectionDAG's ComputeNumSignBits-using code to instcombine,Dan Gohman2008-05-202-1/+35
| | | | | | | now that instcombine also has ComputeNumSignBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51350 91177308-0d34-0410-b5e6-96231b3b80d8
* sabre brings to my attention that the 'tr' suffix is also obsoleteGabor Greif2008-05-2072-72/+72
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51349 91177308-0d34-0410-b5e6-96231b3b80d8
* 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