summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Avoid leaking CompileUnits in DwarfDebug.cpp.Jeffrey Yasskin2010-03-112-14/+15
| | | | llvm-svn: 98268
* Add a new jump table encoding to indicate jump tables entriesRichard Osborne2010-03-112-0/+7
| | | | | | are inside the function by the target at the point of use. llvm-svn: 98255
* The check for coalescing a virtual register to a physical register, e.g.Evan Cheng2010-03-112-10/+21
| | | | | | | | | cl = EXTRACT_SUBREG reg1024, 1, is overly conservative. It should check for overlaps of vr's live interval with the super registers of the physical register (ECX in this case) and let JoinIntervals() handle checking the coalescing feasibility against the physical register (cl in this case). llvm-svn: 98251
* Remove dead include.Daniel Dunbar2010-03-111-1/+0
| | | | llvm-svn: 98225
* Fix debug_value handling.Dale Johannesen2010-03-111-2/+6
| | | | llvm-svn: 98224
* MC: Provide MCAssembler with a TargetAsmBackend.Daniel Dunbar2010-03-111-4/+5
| | | | llvm-svn: 98222
* VirtRegRewriter spring cleaning. No functional change.Jakob Stoklund Olesen2010-03-111-1255/+1292
| | | | | | | Move methods out of line and M-x whitespace-cleanup. Promote common method arguments to member variables. llvm-svn: 98207
* fix PR6533 by updating the br(xor) code to remember the caseChris Lattner2010-03-101-5/+7
| | | | | | when it looked past a trunc. llvm-svn: 98203
* Cosmetic: lengthen names and improve comments.Dale Johannesen2010-03-102-16/+15
| | | | llvm-svn: 98202
* Add a bit along with the MCSymbols stored in the MachineModuleInfo maps thatBill Wendling2010-03-102-13/+22
| | | | | | | | indicates that an MCSymbol is external or not. (It's true if it's external.) This will be used to specify the correct information to add to non-lazy pointers. That will be explained further when this bit is used. llvm-svn: 98199
* Progress towards shepherding debug info through SelectionDAG.Dale Johannesen2010-03-107-28/+176
| | | | | | | No functional effect yet. This is still evolving and should not be viewed as final. llvm-svn: 98195
* Fix another bitwidth calculation to handle vector types; based on aDan Gohman2010-03-101-1/+1
| | | | | | patch by Micah Villmow for PR6572. llvm-svn: 98188
* Fix another place where DEBUG_VALUE affected codegen.Dale Johannesen2010-03-101-1/+12
| | | | llvm-svn: 98181
* Fix a bug in DEBUG_VALUE handling Devang ran into.Dale Johannesen2010-03-101-6/+3
| | | | | | I'll get this loop right yet. llvm-svn: 98155
* 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]! llvm-svn: 98145
* This survived a bootstrap, so let's try 98104 again.Dale Johannesen2010-03-101-4/+69
| | | | llvm-svn: 98137
* Enable machine cse pass.Evan Cheng2010-03-101-5/+1
| | | | llvm-svn: 98132
* mcize the rest of EH emission, only one more directive missingChris Lattner2010-03-101-12/+17
| | | | | | for darwin/x86 to be completely mcized. llvm-svn: 98130
* 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
OpenPOWER on IntegriCloud