summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Add Order to SDDbgValueDale Johannesen2010-03-081-4/+10
| | | | llvm-svn: 97939
* Fix dbg value handling in tail merging.Dale Johannesen2010-03-081-3/+25
| | | | llvm-svn: 97938
* Revert r97917, which was causing Clang Debug self-host failures.Douglas Gregor2010-03-083-28/+29
| | | | llvm-svn: 97932
* Roll r97906 forward again, without double-deleting CompileUnit::IndexTyDie.Jeffrey Yasskin2010-03-073-29/+28
| | | | llvm-svn: 97917
* Use Other as a sentinel instead of iAny.Chris Lattner2010-03-071-4/+4
| | | | llvm-svn: 97914
* _2_ gcc crashes, ah, ah, ah...Jeffrey Yasskin2010-03-072-24/+22
| | | | | | (Rolling back r97906.) llvm-svn: 97909
* Avoid leaking CompileUnits and DbgScopes from DwarfDebug. Leaks found by ↵Jeffrey Yasskin2010-03-072-22/+24
| | | | | | Valgrind! llvm-svn: 97906
* tidy upChris Lattner2010-03-071-10/+10
| | | | llvm-svn: 97895
* Don't update physical register def.Evan Cheng2010-03-061-2/+3
| | | | llvm-svn: 97861
* Add some new bits of debug info handling. NoDale Johannesen2010-03-063-0/+129
| | | | | | functional change yet. llvm-svn: 97855
* Reapply r97778 and r97779, enabled only for unsigned i64 to f64Dan Gohman2010-03-061-0/+25
| | | | | | conversions. llvm-svn: 97854
* Don't emit global symbols into the (__TEXT,__ustring) section on Darwin. ThisCharles Davis2010-03-051-1/+1
| | | | | | | | | is a workaround for <rdar://problem/7672401/> (which I filed). This let's us build Wine on Darwin, and it gets the Qt build there a little bit further (so Doug says). llvm-svn: 97845
* Better handling of dead super registers in LiveVariables. We used to do this:Jakob Stoklund Olesen2010-03-051-21/+21
| | | | | | | | | | | | | | | | | | | | | CALL ... %RAX<imp-def> ... [not using %RAX] %EAX = ..., %RAX<imp-use, kill> RET %EAX<imp-use,kill> Now we do this: CALL ... %RAX<imp-def, dead> ... [not using %RAX] %EAX = ... RET %EAX<imp-use,kill> By not artificially keeping %RAX alive, we lower register pressure a bit. The correct number of instructions for 2008-08-05-SpillerBug.ll is obviously 55, anybody can see that. Sheesh. llvm-svn: 97838
* We don't really care about correct register liveness information after theJakob Stoklund Olesen2010-03-051-4/+10
| | | | | | post-ra scheduler has run. Disable the verifier checks that late in the game. llvm-svn: 97837
* Avoid creating bad PHI instructions when BR is being const-folded.Jakob Stoklund Olesen2010-03-051-0/+2
| | | | llvm-svn: 97836
* Fix PR6497, a bug where we'd fold a load into an addcChris Lattner2010-03-051-0/+7
| | | | | | | | | | | node which has a flag. That flag in turn was used by an already-selected adde which turned into an ADC32ri8 which used a selected load which was chained to the load we folded. This flag use caused us to form a cycle. Fix this by not ignoring chains in IsLegalToFold even in cases where the isel thinks it can. llvm-svn: 97791
* inline a small function with one call site.Chris Lattner2010-03-051-16/+4
| | | | llvm-svn: 97789
OpenPOWER on IntegriCloud