summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* add missing filename!Chris Lattner2010-03-101-0/+2
| | | | llvm-svn: 98125
* set the temporary bit on MCSymbols correctly.Chris Lattner2010-03-106-31/+41
| | | | llvm-svn: 98124
* 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. llvm-svn: 98121
* inline away a form of IsPCRelative, eliminating the Chris Lattner2010-03-104-29/+14
| | | | | | dead IsPCRel argument. llvm-svn: 98117
* 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. llvm-svn: 98116
* Clear up the last (famous last words) frame index value reuse issues for Thumb1.Jim Grosbach2010-03-102-7/+11
| | | | llvm-svn: 98109
* Speculatively revert 98104; could be what's causing crashesDale Johannesen2010-03-101-56/+3
| | | | llvm-svn: 98108
* mcize uses of PrintRelDirective and eliminate it.Chris Lattner2010-03-103-21/+9
| | | | llvm-svn: 98107
* inline the bool form of PrintRelDirective away, leaving just the unsigned form.Chris Lattner2010-03-092-9/+4
| | | | llvm-svn: 98106
* 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. llvm-svn: 98105
* Ever more complicated DEBUG_VALUE fixes for branch folding.Dale Johannesen2010-03-091-3/+56
| | | | llvm-svn: 98104
* eliminate a bunch of \n's that are being printed to O. Next up is to killChris Lattner2010-03-092-35/+19
| | | | | | off "EOL". llvm-svn: 98102
* 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". llvm-svn: 98101
* 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. llvm-svn: 98086
* Allow more cross-rc coalescing.Evan Cheng2010-03-091-10/+13
| | | | llvm-svn: 98048
* reapply r98035:Chris Lattner2010-03-094-24/+24
| | | | | | | Now that setStartLabel takes an MCSymbol, we can de-ID'ize beginScope and RecordSourceLine. llvm-svn: 98047
* add some extra checks. I'm not sure why, but this does unbreak aChris Lattner2010-03-091-0/+3
| | | | | | failure remaining on mainline. llvm-svn: 98046
* Revert accidental commit.Evan Cheng2010-03-091-1/+1
| | | | llvm-svn: 98045
* Don't do illegal cross-class coalescing.Jakob Stoklund Olesen2010-03-091-1/+1
| | | | llvm-svn: 98044
* - 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. llvm-svn: 98043
* Speculatively revert r98035. It appears to have caused a set of buildbotEric Christopher2010-03-094-24/+24
| | | | | | failures. llvm-svn: 98039
* 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. llvm-svn: 98036
* Now that setStartLabel takes an MCSymbol, we can de-ID'izeChris Lattner2010-03-094-24/+24
| | | | | | beginScope and RecordSourceLine. llvm-svn: 98035
* 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. llvm-svn: 98034
* 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. llvm-svn: 98032
* 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. llvm-svn: 98031
* mcstreamerize AsmPrinter::printLabel.Chris Lattner2010-03-092-6/+8
| | | | llvm-svn: 98025
* 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. llvm-svn: 98023
* add a EmitSymbolValue convenience method to MCStreamer.Chris Lattner2010-03-093-9/+4
| | | | llvm-svn: 98017
* make InlineInfoLabels hold MCSymbol*'s, avoiding Chris Lattner2010-03-092-11/+11
| | | | | | recomputation of the labels. llvm-svn: 98016
* mc'ize the last use of PrintLabelName and eliminate PrintLabelName.Chris Lattner2010-03-093-20/+7
| | | | llvm-svn: 98015
* eliminate an argument from PrintRelDirective, sinkingChris Lattner2010-03-092-12/+17
| | | | | | | the one special case into EmitSectionOffset. MCize the non-special case in EmitSectionOffset. llvm-svn: 98014
* Print the correct index in the "match failed at index" message.Dan Gohman2010-03-091-1/+1
| | | | llvm-svn: 98013
* remove the suffix form of PrintLabelName, which was only Chris Lattner2010-03-092-10/+0
| | | | | | used for 'flavor'. llvm-svn: 98012
* now that the debug and eh emitters use a common .set counter,Chris Lattner2010-03-094-11/+5
| | | | | | we can eliminate "flavor". llvm-svn: 98011
* move .set generation out of DwarfPrinter into AsmPrinter and Chris Lattner2010-03-083-25/+32
| | | | | | MCize it. llvm-svn: 98010
* 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. llvm-svn: 98009
* Restrict machine cse to really trivial coalescing. Leave the heavy lifting ↵Evan Cheng2010-03-081-0/+3
| | | | | | to a real coalescer. llvm-svn: 98007
* 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. llvm-svn: 98005
* Remove a version of EmitDifference.Chris Lattner2010-03-084-51/+26
| | | | llvm-svn: 98002
* eliminate a form of PrintLabelName.Chris Lattner2010-03-083-11/+5
| | | | llvm-svn: 97999
* remove another form of EmitReference.Chris Lattner2010-03-083-10/+3
| | | | llvm-svn: 97998
* eliminate the non-MCSymbol versions of EmitReference.Chris Lattner2010-03-083-25/+7
| | | | llvm-svn: 97997
* mc'ize EmitLabel.Chris Lattner2010-03-084-69/+52
| | | | llvm-svn: 97996
* merge DIEObjectLabel and DIEDwarfLabel into DIELabel.Chris Lattner2010-03-085-89/+13
| | | | | | Yes, DIE you fiendish labels, die all of you. llvm-svn: 97995
* elimiante the DWLabel class, using MCSymbol instead. Start Chris Lattner2010-03-0810-177/+138
| | | | | | | switching some stuff over to passing around MCSymbol* instead of stem+ID. llvm-svn: 97993
* Derive DIType from DIScope. This simplifies getContext() where for members ↵Devang Patel2010-03-082-39/+13
| | | | | | the context is a type. This also eliminates need of CompileUnitMaps maintained by dwarf writer. llvm-svn: 97990
* Avoid using DIDescriptor.isNull(). Devang Patel2010-03-084-75/+54
| | | | | | This is a first step towards eliminating checks in Descriptor constructors. llvm-svn: 97975
* Revert r97947.Devang Patel2010-03-084-54/+75
| | | | llvm-svn: 97963
* Avoid using DIDescriptor.isNull().Devang Patel2010-03-084-75/+54
| | | | | | This is a first step towards eliminating unncessary constructor checks in light weight DIDescriptor wrappers. llvm-svn: 97947
OpenPOWER on IntegriCloud