aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Fix another bitwidth calculation to handle vector types; based on aDan Gohman2010-03-101-1/+1
| | | | | | | patch by Micah Villmow for PR6572. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98188 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix another place where DEBUG_VALUE affected codegen.Dale Johannesen2010-03-101-1/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98181 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug in DEBUG_VALUE handling Devang ran into.Dale Johannesen2010-03-101-6/+3
| | | | | | | | I'll get this loop right yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98155 91177308-0d34-0410-b5e6-96231b3b80d8
* move three lowering hooks from MAI to TLOF and make one of themChris Lattner2010-03-102-6/+14
| | | | | | | | semantic instead of syntactic. This completes MCization of darwin/x86[-64]! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98145 91177308-0d34-0410-b5e6-96231b3b80d8
* This survived a bootstrap, so let's try 98104 again.Dale Johannesen2010-03-101-4/+69
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98137 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable machine cse pass.Evan Cheng2010-03-101-5/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98132 91177308-0d34-0410-b5e6-96231b3b80d8
* mcize the rest of EH emission, only one more directive missingChris Lattner2010-03-101-12/+17
| | | | | | | for darwin/x86 to be completely mcized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98130 91177308-0d34-0410-b5e6-96231b3b80d8
* add missing filename!Chris Lattner2010-03-101-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98125 91177308-0d34-0410-b5e6-96231b3b80d8
* set the temporary bit on MCSymbols correctly.Chris Lattner2010-03-106-31/+41
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98124 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a couple more heuristics to neuter machine cse some more.Evan Cheng2010-03-101-13/+57
| | | | | | | | | | | | 1. Be careful with cse "cheap" expressions. e.g. constant materialization. Only cse them when the common expression is local or in a direct predecessor. We don't want cse of cheap instruction causing other expressions to be spilled. 2. Watch out for the case where the expression doesn't itself uses a virtual register. e.g. lea of frame object. If the common expression itself is used by copies (common for passing addresses to function calls), don't perform the cse. Since these expressions do not use a register, it creates a live range but doesn't close any, we want to be very careful with increasing register pressure. Note these are heuristics so machine cse doesn't make register allocator unhappy. Once we have proper live range splitting and re-materialization support in place, these should be evaluated again. Now machine cse is almost always a win on llvm nightly tests on x86 and x86_64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98121 91177308-0d34-0410-b5e6-96231b3b80d8
* inline away a form of IsPCRelative, eliminating the Chris Lattner2010-03-104-29/+14
| | | | | | | dead IsPCRel argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98117 91177308-0d34-0410-b5e6-96231b3b80d8
* add some fixme's for MCizing. EH still has a few things thatChris Lattner2010-03-103-13/+9
| | | | | | | | | need to be MCized, but the last debug info thing are LEB and cygwin specific (which the MC api doesn't support yet) and one specific form of EmitReference which I'll tackle next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98116 91177308-0d34-0410-b5e6-96231b3b80d8
* Clear up the last (famous last words) frame index value reuse issues for Thumb1.Jim Grosbach2010-03-102-7/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98109 91177308-0d34-0410-b5e6-96231b3b80d8
* Speculatively revert 98104; could be what's causing crashesDale Johannesen2010-03-101-56/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98108 91177308-0d34-0410-b5e6-96231b3b80d8
* mcize uses of PrintRelDirective and eliminate it.Chris Lattner2010-03-103-21/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98107 91177308-0d34-0410-b5e6-96231b3b80d8
* inline the bool form of PrintRelDirective away, leaving just the unsigned form.Chris Lattner2010-03-092-9/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98106 91177308-0d34-0410-b5e6-96231b3b80d8
* eliminate EOL, adding all comments with the OutStreamer.AddComment Chris Lattner2010-03-094-131/+143
| | | | | | | | | | | | | method. With this, comments should end up on the same lines as the .byte directives (for example) and we now get no output with: $ llc CodeGen/X86/2009-02-12-DebugInfoVLA.ll -o - -filetype=null -asm-verbose woot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98105 91177308-0d34-0410-b5e6-96231b3b80d8
* Ever more complicated DEBUG_VALUE fixes for branch folding.Dale Johannesen2010-03-091-3/+56
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98104 91177308-0d34-0410-b5e6-96231b3b80d8
* eliminate a bunch of \n's that are being printed to O. Next up is to killChris Lattner2010-03-092-35/+19
| | | | | | | off "EOL". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98102 91177308-0d34-0410-b5e6-96231b3b80d8
* convert the non-"ispcrel" case of EmitReference to MC,Chris Lattner2010-03-091-0/+8
| | | | | | | | significant debug info testcases are now all going through MCStreamer, though they print a lot of extraneous newlines to "O". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98101 91177308-0d34-0410-b5e6-96231b3b80d8
* Change the Value argument to eliminateFrameIndex to a type-tagged value. ThisJim Grosbach2010-03-091-2/+3
| | | | | | | | | | is preparatory to having PEI's scavenged frame index value reuse logic properly distinguish types of frame values (e.g., whether the value is stack-pointer relative or frame-pointer relative). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98086 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow more cross-rc coalescing.Evan Cheng2010-03-091-10/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98048 91177308-0d34-0410-b5e6-96231b3b80d8
* reapply r98035:Chris Lattner2010-03-094-24/+24
| | | | | | | | Now that setStartLabel takes an MCSymbol, we can de-ID'ize beginScope and RecordSourceLine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98047 91177308-0d34-0410-b5e6-96231b3b80d8
* add some extra checks. I'm not sure why, but this does unbreak aChris Lattner2010-03-091-0/+3
| | | | | | | failure remaining on mainline. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98046 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert accidental commit.Evan Cheng2010-03-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98045 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't do illegal cross-class coalescing.Jakob Stoklund Olesen2010-03-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98044 91177308-0d34-0410-b5e6-96231b3b80d8
* - Make the machine cse dumb coalescer (as opposed to the more awesome simpleEvan Cheng2010-03-092-15/+59
| | | | | | | | | | coalescer) handle sub-register classes. - Add heuristics to avoid non-profitable cse. Given the current lack of live range splitting, avoid cse when an expression has PHI use and the would be new use is in a BB where the expression wasn't already being used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98043 91177308-0d34-0410-b5e6-96231b3b80d8
* Speculatively revert r98035. It appears to have caused a set of buildbotEric Christopher2010-03-094-24/+24
| | | | | | | failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98039 91177308-0d34-0410-b5e6-96231b3b80d8
* Attempt to make this debug output meaningful, both in the case ofDan Gohman2010-03-091-3/+6
| | | | | | | multibyte opcodes and in the case of multiple scopes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98036 91177308-0d34-0410-b5e6-96231b3b80d8
* Now that setStartLabel takes an MCSymbol, we can de-ID'izeChris Lattner2010-03-094-24/+24
| | | | | | | | beginScope and RecordSourceLine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98035 91177308-0d34-0410-b5e6-96231b3b80d8
* change DbgScope to keep track of the start/end label as MCSymbol* Chris Lattner2010-03-091-41/+36
| | | | | | | now that the dependence on ID is removed from MMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98034 91177308-0d34-0410-b5e6-96231b3b80d8
* remove a useless optimization: now that label replacement neverChris Lattner2010-03-091-7/+0
| | | | | | | happens, the start/end of a scope can never be the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98032 91177308-0d34-0410-b5e6-96231b3b80d8
* strength reduce MMI::MappedLabel to MMI::isLabelDeleted,Chris Lattner2010-03-093-22/+24
| | | | | | | | and add a FIXME about how we are eventually going to zap this lookup table once mc world domination is complete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98031 91177308-0d34-0410-b5e6-96231b3b80d8
* mcstreamerize AsmPrinter::printLabel.Chris Lattner2010-03-092-6/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98025 91177308-0d34-0410-b5e6-96231b3b80d8
* Disable physical register coalescing when the number of live ranges for theJakob Stoklund Olesen2010-03-091-0/+12
| | | | | | | | | | | | | physreg becomes ridiculously high. std::upper_bound may be log(N), but for sufficiently large live intervals, it becomes log(N)*cachemiss = a long long time. This patch improves coalescer time by 4500x for a function with 20000 function calls. The generated code is different, but not significantly worse - the allocator hints are almost as good as physreg coalescing anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98023 91177308-0d34-0410-b5e6-96231b3b80d8
* add a EmitSymbolValue convenience method to MCStreamer.Chris Lattner2010-03-093-9/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98017 91177308-0d34-0410-b5e6-96231b3b80d8
* make InlineInfoLabels hold MCSymbol*'s, avoiding Chris Lattner2010-03-092-11/+11
| | | | | | | recomputation of the labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98016 91177308-0d34-0410-b5e6-96231b3b80d8
* mc'ize the last use of PrintLabelName and eliminate PrintLabelName.Chris Lattner2010-03-093-20/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98015 91177308-0d34-0410-b5e6-96231b3b80d8
* eliminate an argument from PrintRelDirective, sinkingChris Lattner2010-03-092-12/+17
| | | | | | | | the one special case into EmitSectionOffset. MCize the non-special case in EmitSectionOffset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98014 91177308-0d34-0410-b5e6-96231b3b80d8
* Print the correct index in the "match failed at index" message.Dan Gohman2010-03-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98013 91177308-0d34-0410-b5e6-96231b3b80d8
* remove the suffix form of PrintLabelName, which was only Chris Lattner2010-03-092-10/+0
| | | | | | | used for 'flavor'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98012 91177308-0d34-0410-b5e6-96231b3b80d8
* now that the debug and eh emitters use a common .set counter,Chris Lattner2010-03-094-11/+5
| | | | | | | we can eliminate "flavor". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98011 91177308-0d34-0410-b5e6-96231b3b80d8
* move .set generation out of DwarfPrinter into AsmPrinter and Chris Lattner2010-03-083-25/+32
| | | | | | | MCize it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98010 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't waste time trying to CSE labels, phis, inline asm. Definitely avoid ↵Evan Cheng2010-03-081-0/+4
| | | | | | cse implicit-def for obvious performance reason. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98009 91177308-0d34-0410-b5e6-96231b3b80d8
* Restrict machine cse to really trivial coalescing. Leave the heavy lifting ↵Evan Cheng2010-03-081-0/+3
| | | | | | to a real coalescer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98007 91177308-0d34-0410-b5e6-96231b3b80d8
* simplify EmitSectionOffset to always use .set if it isChris Lattner2010-03-087-38/+16
| | | | | | | | | | available, the only thing this affects is that we produce .set in one case we didn't before, which shouldn't harm anything. Make EmitSectionOffset call EmitDifference instead of duplicating it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98005 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a version of EmitDifference.Chris Lattner2010-03-084-51/+26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98002 91177308-0d34-0410-b5e6-96231b3b80d8
* eliminate a form of PrintLabelName.Chris Lattner2010-03-083-11/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97999 91177308-0d34-0410-b5e6-96231b3b80d8
* remove another form of EmitReference.Chris Lattner2010-03-083-10/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97998 91177308-0d34-0410-b5e6-96231b3b80d8
* eliminate the non-MCSymbol versions of EmitReference.Chris Lattner2010-03-083-25/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97997 91177308-0d34-0410-b5e6-96231b3b80d8