summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Actually remove unused static. Previous commit removed trailingEric Christopher2009-08-221-1/+0
| | | | | | whitespace. llvm-svn: 79711
* Remove unused static.Eric Christopher2009-08-221-20/+20
| | | | llvm-svn: 79710
* Ease contention on this lock by noticing that all writes to the VTs array willOwen Anderson2009-08-221-2/+5
| | | | | | | | | be of (dynamically) constant values, so races on it are immaterial. We just need to ensure that at least one write has completed before return the pointer into it. With this change, parllc exhibits essentially no overhead on 403.gcc. llvm-svn: 79708
* Fix typo. Should check both values of RangeUse for 0. Patch by Marius Wachtler.Bill Wendling2009-08-211-1/+1
| | | | llvm-svn: 79649
* Attempt to comment this code more.Bill Wendling2009-08-201-27/+122
| | | | llvm-svn: 79567
* Suppress build warning in -AssertsDaniel Dunbar2009-08-201-0/+1
| | | | llvm-svn: 79564
* Check for shared landing pads when assigning call site values. Invokes whichJim Grosbach2009-08-201-20/+34
| | | | | | share a landing pad should also use the same call site value. llvm-svn: 79501
* Add missing forward declaration.David Greene2009-08-191-0/+1
| | | | llvm-svn: 79481
* Add missing includes.David Greene2009-08-191-0/+1
| | | | llvm-svn: 79480
* Add missing includes.David Greene2009-08-191-0/+1
| | | | llvm-svn: 79479
* Add missing includes.David Greene2009-08-191-0/+1
| | | | llvm-svn: 79478
* Add missing includes.David Greene2009-08-191-0/+1
| | | | llvm-svn: 79476
* Add missing includes.David Greene2009-08-191-0/+1
| | | | llvm-svn: 79475
* Add missing includes.David Greene2009-08-191-0/+1
| | | | llvm-svn: 79474
* Add missing includes.David Greene2009-08-191-0/+1
| | | | llvm-svn: 79473
* Switch to SmallString::str from SmallString::c_str, and removeDaniel Dunbar2009-08-191-2/+2
| | | | | | SmallString::c_str. llvm-svn: 79456
* Add an x86 peep that narrows TEST instructions to forms that useDan Gohman2009-08-191-0/+11
| | | | | | | a smaller encoding. These kinds of patterns are very frequent in sqlite3, for example. llvm-svn: 79439
* Use the schedule itinerary operand use/def cycle information to adjust ↵David Goodwin2009-08-193-7/+75
| | | | | | dependence edge latency for post-RA scheduling. llvm-svn: 79425
* PR4737: Fix a nasty bug in load narrowing with non-power-of-two types.Eli Friedman2009-08-191-1/+2
| | | | llvm-svn: 79415
* switch asmprinter to emit alignments through OutStreamer.Chris Lattner2009-08-191-8/+5
| | | | llvm-svn: 79406
* eliminate AsmPrinter::SwitchToSection and just have clientsChris Lattner2009-08-194-61/+72
| | | | | | talk to the MCStreamer directly instead. llvm-svn: 79405
* Added an option to have the PBQP allocator attempt coalescing during allocation.Lang Hames2009-08-191-1/+10
| | | | llvm-svn: 79397
* Be tidy and use a break to exit from a switch block rather thanDan Gohman2009-08-181-0/+1
| | | | | | just falling through the end. llvm-svn: 79383
* Legalize the shift amount operand of SRL_PARTS, SHL_PARTS, andDan Gohman2009-08-181-0/+7
| | | | | | SRA_PARTS, as is done for SRL, SHL, and SRA. llvm-svn: 79380
* Changes DOUT references in the PBQP allocator to use DEBUG(errs() ...)Lang Hames2009-08-181-11/+7
| | | | llvm-svn: 79378
* Simplify RegScavenger::FindUnusedReg.Jakob Stoklund Olesen2009-08-181-30/+6
| | | | | | | | | - Drop the Candidates argument and fix all callers. Now that RegScavenger tracks available registers accurately, there is no need to restict the search. - Make sure that no aliases of the found register are in use. This was a potential bug. llvm-svn: 79369
* Make various changes suggested by Chris.David Greene2009-08-181-36/+48
| | | | llvm-svn: 79358
* fix COFF targets (mingw/cygwin) to provide ehframe and LSDA sectionsChris Lattner2009-08-181-8/+2
| | | | llvm-svn: 79346
* Make tail merging handle blocks with repeated predecessors correctly, andDan Gohman2009-08-181-25/+4
| | | | | | | | | | | | | | | | | | | | remove RemoveDuplicateSuccessor, as it is no longer necessary, and because it breaks assumptions made in MachineBasicBlock::isOnlyReachableByFallthrough. Convert test/CodeGen/X86/omit-label.ll to FileCheck and add a testcase for PR4732. test/CodeGen/Thumb2/thumb2-ifcvt2.ll sees a diff with this commit due to it being bugpoint-reduced to the point where it doesn't matter what the condition for the branch is. Add some more interesting code to test/CodeGen/X86/2009-08-06-branchfolder-crash.ll, which is the testcase that originally motivated the RemoveDuplicateSuccessor code, to help verify that the original problem isn't being re-broken. llvm-svn: 79338
* Make AsmStreamer maintain a notion of the current section, pushing it up ↵Chris Lattner2009-08-181-15/+10
| | | | | | | | | | | | from the MCAsmStreamer. Based on this, eliminate the current section from AsmPrinter. While I'm at it, clean up the last of the horrible "switch to null section" stuff and add an assert. This change is in preparation for completely eliminating asmprinter::switchtosection. llvm-svn: 79324
* add a horrible hack to the dwarf printer. It looks like mingw is not specifyingChris Lattner2009-08-181-3/+9
| | | | | | | | an EHFrame section, so we just emit ehframe data into a random section. This is clearly bad. llvm-svn: 79323
* fix another bozo bugChris Lattner2009-08-181-2/+2
| | | | llvm-svn: 79313
* fix accidentally inverted conditional and add comment.Chris Lattner2009-08-181-1/+4
| | | | llvm-svn: 79312
* turn this conditional into something humans might actuallyChris Lattner2009-08-181-8/+25
| | | | | | be able to understand ;-) llvm-svn: 79311
* cleanups per review. Mostly cosmetic, plus use SmallVector in place of ↵Jim Grosbach2009-08-171-24/+16
| | | | | | std::vector. llvm-svn: 79287
* Remove a bit more cruft from the sjlj moving to a backend pass.Jim Grosbach2009-08-173-15/+0
| | | | llvm-svn: 79272
* Update CMakeLists.Benjamin Kramer2009-08-171-0/+1
| | | | llvm-svn: 79264
* Fix build warning.Daniel Dunbar2009-08-171-1/+1
| | | | llvm-svn: 79262
* Move the sjlj exception handling conversions to a back-end pass where theyJim Grosbach2009-08-174-34/+538
| | | | | | | | | more properly belong. This allows removing the front-end conditionalized SJLJ code, and cleans up the generated IR considerably. All of the infrastructure code (calling _Unwind_SjLj_Register/Unregister, etc) is added by the SjLjEHPrepare pass. llvm-svn: 79250
* Extend the instruction itinerary model to include the ability to indicate ↵David Goodwin2009-08-171-5/+6
| | | | | | the def and use cycle for each operand. This additional information is optional, so existing itineraries do not need to be changed. llvm-svn: 79247
* the MinPad argument to PadToColumn only really makes sense to be 1,Chris Lattner2009-08-171-42/+42
| | | | | | just remove the argument and replace it with 1. llvm-svn: 79246
* change AsmPrinter to switch sections using AsmStreamer instead ofChris Lattner2009-08-171-9/+4
| | | | | | | | | doing it directly. This requires const'izing a bunch of stuff that took sections, but this seems like the right semantic thing to do: emitting a label to a section shouldn't mutate the MCSection object itself, for example. llvm-svn: 79227
* give MCAsmStreamer a TargetAsmInfo.Chris Lattner2009-08-171-1/+1
| | | | llvm-svn: 79222
* Replace RegScavenger::DistanceMap with a simpler local algorithm.Jakob Stoklund Olesen2009-08-161-68/+47
| | | | llvm-svn: 79195
* Clean up the public interface of RegScavenger.Jakob Stoklund Olesen2009-08-161-19/+0
| | | | | | Remove unused methods and make others private. llvm-svn: 79194
* Be more clever about regclasses in ScheduleDAGSDNodes::EmitCopyFromReg.Jakob Stoklund Olesen2009-08-161-5/+5
| | | | | | | | If two uses of a CopyFromReg want different regclasses, first try a common sub-class, then fall back on the copy emitted in AddRegisterOperand. There is no need for an assert here. The cross-class joiner usually cleans up nicely. llvm-svn: 79193
* Needs to check whether unaligned load / store of i64 is legal here.Evan Cheng2009-08-151-4/+3
| | | | llvm-svn: 79150
* Remove <iostream>.Bill Wendling2009-08-151-20/+17
| | | | llvm-svn: 79146
* Unbreak build. Evan, please make sure my changes are correct.Benjamin Kramer2009-08-153-6/+5
| | | | llvm-svn: 79133
* Refine EarlyClobber assert in register scavenger.Jakob Stoklund Olesen2009-08-151-1/+1
| | | | | | | | | | | | | | It is legal for an inline asm operand to use an earlyclobber register if the use operand is tied to the earlyclobber operand. The issue is discussed here: http://gcc.gnu.org/ml/gcc/1999-04n/msg00431.html We should perhaps let only the machine code verifier worry about these finer details. EarlyClobber operands are not really interesting to the scavenger. This fixes PR4528 for the third time. llvm-svn: 79122
OpenPOWER on IntegriCloud