summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Add comment re byval args. Doesn't actually work this way yet.Dale Johannesen2010-04-251-1/+3
| | | | | | xs llvm-svn: 102316
* Fix PR6921: globals were not getting correctly rounded up to theirChris Lattner2010-04-251-3/+3
| | | | | | | preferred alignment unless they were common or some other special case. llvm-svn: 102300
* When a load operand is promoted to an extload, replace other uses with uses ↵Evan Cheng2010-04-241-30/+67
| | | | | | of extload result truncated. llvm-svn: 102236
* Apply a fix for a vector setcc dagcombine from Jan Sjodin. NoDan Gohman2010-04-241-1/+2
| | | | | | testcase yet, as the testcase now fails downstream. llvm-svn: 102228
* Code refactoring.Evan Cheng2010-04-231-11/+12
| | | | llvm-svn: 102202
* Move FastISel's HandlePHINodesInSuccessorBlocks call down into FastISelDan Gohman2010-04-232-14/+6
| | | | | | itself too. llvm-svn: 102176
* Revert 102135, 102129, 102127, 102106, 102104, 102102, 102012, 102004,Dan Gohman2010-04-232-375/+211
| | | | | | | because 102004 causes codegen to emit invalid assembly on at least x86_64-unknown-gnu-linux. llvm-svn: 102155
* Add comment.Devang Patel2010-04-221-0/+5
| | | | llvm-svn: 102129
* Sink SelectionDAGBuilder's HandlePHINodesInSuccessorBlocks downDan Gohman2010-04-223-15/+7
| | | | | | into SelectionDAGBuilder itself. llvm-svn: 102128
* Adjust debug range offsets for isWeakForLinker() functions.Devang Patel2010-04-222-6/+29
| | | | llvm-svn: 102127
* Move HandlePHINodesInSuccessorBlocks functions out of SelectionDAGISelDan Gohman2010-04-224-81/+86
| | | | | | and into SelectionDAGBuilder and FastISel. llvm-svn: 102123
* - It's not safe to promote rotates (at least not trivially).Evan Cheng2010-04-221-25/+46
| | | | | | - Some code refactoring. llvm-svn: 102111
* Fix a comment.Dan Gohman2010-04-221-1/+1
| | | | llvm-svn: 102110
* Move PHINodesToUpdate out of SelectionDAGBuilder and intoDan Gohman2010-04-224-36/+44
| | | | | | | | | FunctionLoweringInfo, as it isn't SelectionDAG-specific. This isn't completely natural, as PHI node state is not per-function but rather per-basic-block, however there's currently no other convenient per-basic-block state to group it with. llvm-svn: 102109
* Rename InsnAfterLabelMap and InsnBeforeLabelMap.Devang Patel2010-04-222-14/+14
| | | | llvm-svn: 102106
* Keep track of MCSymbol used to mark beginning of a function.Devang Patel2010-04-222-3/+6
| | | | llvm-svn: 102104
* At this point Start and End are not null.Devang Patel2010-04-221-5/+2
| | | | llvm-svn: 102102
* Run LiveVariables instead of computing liveness locally in -regalloc=fast.Jakob Stoklund Olesen2010-04-211-177/+2
| | | | | | | | | | | This actually makes everything slower, but the plan is to have isel add <kill> flags the way it is already adding <dead> flags. Then LiveVariables can be removed again. When ignoring the time spent in LiveVariables, -regalloc=fast is now twice as fast as -regalloc=local. llvm-svn: 102034
* Do not try to optimize a copy that has already been marked for deletion.Evan Cheng2010-04-211-1/+2
| | | | llvm-svn: 102027
* Add command line option to disable debug info printing in .s file. This ↵Devang Patel2010-04-211-0/+6
| | | | | | option does not impact debug info generation and preservation through earlier compile starges. llvm-svn: 102012
* Add fast register allocator, enabled with -regalloc=fast.Jakob Stoklund Olesen2010-04-212-0/+1108
| | | | | | | | | | | | | So far this is just a clone of -regalloc=local that has been lobotomized to run 25% faster. It drops the least-recently-used calculations, and is just plain stupid when it runs out of registers. The plan is to make this go even faster for -O0 by taking advantage of the short live intervals in unoptimized code. It should not be necessary to calculate liveness when most virtual registers are killed 2-3 instructions after they are born. llvm-svn: 102006
* Identify when a lexical scope is split in to multiple instruction ranges. ↵Devang Patel2010-04-212-191/+321
| | | | | | Emit such ranges using DW_AT_ranges. llvm-svn: 102004
* Implement -disable-non-leaf-fp-elim which disable frame pointer eliminationEvan Cheng2010-04-211-1/+1
| | | | | | | optimization for non-leaf functions. This will be hooked up to gcc's -momit-leaf-frame-pointer option. rdar://7886181 llvm-svn: 101984
* Add more const qualifiers on TargetMachine and friends.Dan Gohman2010-04-212-2/+3
| | | | llvm-svn: 101977
* Update CMakeLists.txt.Dan Gohman2010-04-211-0/+1
| | | | llvm-svn: 101976
* Move several SelectionDAG-independent utility functions out of theDan Gohman2010-04-214-310/+287
| | | | | | SelectionDAG directory and into a new Analysis.cpp file. llvm-svn: 101975
* - Clean up some crappy code which deals with coalescing of copies which look atEvan Cheng2010-04-212-54/+73
| | | | | | | extract_subreg / insert_subreg, etc. - Add support for more aggressive insert_subreg coalescing. llvm-svn: 101971
* Rewrite machine cse to avoid recursion.Evan Cheng2010-04-211-11/+85
| | | | llvm-svn: 101964
* Add another variant of this test which found a place whereDan Gohman2010-04-211-1/+2
| | | | | | | CodeGen's ComputeMaskedBits was being over-conservative when computing bits for an ADD. llvm-svn: 101963
* Because of the EMMS problem, right now we have to supportDale Johannesen2010-04-201-1/+1
| | | | | | | | | | | user-defined operations that use MMX register types, but the compiler shouldn't generate them on its own. This adds a Synthesizable abstraction to represent this, and changes the vector widening computation so it won't produce MMX types. (The motivation is to remove noise from the ABI compatibility part of the gcc test suite, which has some breakage right now.) llvm-svn: 101951
* When MachineLICM is hoisting a physical register after regalloc, make sure theJakob Stoklund Olesen2010-04-201-4/+17
| | | | | | | | | | | register is not killed in the loop. This fixes 188.ammp on ARM where the post-ra scheduler would grab a register that looked available but wasn't. A testcase would be huge and fragile, sorry. llvm-svn: 101930
* Typo.Evan Cheng2010-04-201-1/+1
| | | | llvm-svn: 101914
* Sink the CopyToExportRegsIfNeeded calls out of SelectionDAGISelDan Gohman2010-04-202-6/+3
| | | | | | | | into SelectionDAGBuilder. This avoids a separate pass over the instructions, and has the side effect of providing debug location information to the copy. llvm-svn: 101906
* Don't send PHI nodes down to SelectionDAGBuilder of FastISel, sinceDan Gohman2010-04-204-6/+10
| | | | | | they end up doing nothing. llvm-svn: 101904
* Sink this use_empty() check into isUsedOutsideOfDefiningBlock.Dan Gohman2010-04-201-1/+2
| | | | llvm-svn: 101902
* If a PHI node somehow has debug info, propogate it to the MachineInstr PHI.Dan Gohman2010-04-201-1/+1
| | | | llvm-svn: 101901
* Don't iterate through the whole block just to find the PHI nodes.Dan Gohman2010-04-201-6/+3
| | | | llvm-svn: 101900
* use abstract accessors to CallInstGabor Greif2010-04-201-1/+1
| | | | llvm-svn: 101899
* Bill's change in r95336 broke empty aggregates embeddedChris Lattner2010-04-201-24/+42
| | | | | | | | | | | | in other types. fix this by only bumping zero-byte globals up to a single byte if the *entire global* is zero size, fixing PR6340. This also fixes empty arrays etc to be handled correctly, and only does this on subsection-via-symbols targets (aka darwin) which is the only place where this matters. llvm-svn: 101879
* Delete a redundant return statement.Dan Gohman2010-04-201-1/+0
| | | | llvm-svn: 101860
* The visitXOR method can return the same SDNode. If so, we don't want to deleteBill Wendling2010-04-201-1/+1
| | | | | | it as it's not dead. llvm-svn: 101855
* Remove this debug output; it isn't that useful, and it's incompleteDan Gohman2010-04-201-2/+0
| | | | | | in the case where a basic block is split. llvm-svn: 101850
* Sink DebugLoc handling out of SelectionDAGISel into FastISel andDan Gohman2010-04-204-39/+15
| | | | | | SelectionDAGBuilder, where it doesn't have to be as complicated. llvm-svn: 101848
* Remove MachineFunction's DefaultDebugLoc member, and make DwarfDebug.cppDan Gohman2010-04-202-6/+16
| | | | | | responsible for figuring out what that's supposed to be on its own. llvm-svn: 101844
* Reapply the removal of SelectionDAGISel's BB, with a fix for the caseDan Gohman2010-04-201-17/+21
| | | | | | | where multiple blocks are emitted; functions which do this need to return the new BB so that their callers can stay current. llvm-svn: 101843
* Revert 101825, which is causing trouble.Dan Gohman2010-04-191-15/+14
| | | | llvm-svn: 101832
* Make BreakAntiDependencies' SUnits argument const, and make the BeginDan Gohman2010-04-195-41/+42
| | | | | | and End arguments by-value rather than by-reference. llvm-svn: 101830
* Eliminate SelectionDAGISel's "current block" member. Just pass it asDan Gohman2010-04-191-14/+15
| | | | | | an argument to things that need it. llvm-svn: 101825
* Eliminate the CurMBB member from SelectionDAGBuilder. For places thatDan Gohman2010-04-193-84/+106
| | | | | | | need it, just pass around the parent block of the current instruction explicitly. llvm-svn: 101822
* More progress on promoting i16 operations to i32 for x86. Work in progress.Evan Cheng2010-04-191-9/+118
| | | | llvm-svn: 101808
OpenPOWER on IntegriCloud