| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 98268
|
|
|
|
|
|
| |
are inside the function by the target at the point of use.
llvm-svn: 98255
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 98225
|
|
|
|
| |
llvm-svn: 98224
|
|
|
|
| |
llvm-svn: 98222
|
|
|
|
|
|
|
| |
Move methods out of line and M-x whitespace-cleanup.
Promote common method arguments to member variables.
llvm-svn: 98207
|
|
|
|
|
|
| |
when it looked past a trunc.
llvm-svn: 98203
|
|
|
|
| |
llvm-svn: 98202
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
No functional effect yet. This is still evolving and should
not be viewed as final.
llvm-svn: 98195
|
|
|
|
|
|
| |
patch by Micah Villmow for PR6572.
llvm-svn: 98188
|
|
|
|
| |
llvm-svn: 98181
|
|
|
|
|
|
| |
I'll get this loop right yet.
llvm-svn: 98155
|
|
|
|
|
|
|
| |
semantic instead of syntactic. This completes MCization of
darwin/x86[-64]!
llvm-svn: 98145
|
|
|
|
| |
llvm-svn: 98137
|
|
|
|
| |
llvm-svn: 98132
|
|
|
|
|
|
| |
for darwin/x86 to be completely mcized.
llvm-svn: 98130
|
|
|
|
| |
llvm-svn: 98125
|
|
|
|
| |
llvm-svn: 98124
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
dead IsPCRel argument.
llvm-svn: 98117
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 98109
|
|
|
|
| |
llvm-svn: 98108
|
|
|
|
| |
llvm-svn: 98107
|
|
|
|
| |
llvm-svn: 98106
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 98104
|
|
|
|
|
|
| |
off "EOL".
llvm-svn: 98102
|
|
|
|
|
|
|
| |
significant debug info testcases are now all going through
MCStreamer, though they print a lot of extraneous newlines to "O".
llvm-svn: 98101
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 98048
|
|
|
|
|
|
|
| |
Now that setStartLabel takes an MCSymbol, we can de-ID'ize
beginScope and RecordSourceLine.
llvm-svn: 98047
|
|
|
|
|
|
| |
failure remaining on mainline.
llvm-svn: 98046
|
|
|
|
| |
llvm-svn: 98045
|
|
|
|
| |
llvm-svn: 98044
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
failures.
llvm-svn: 98039
|
|
|
|
|
|
| |
multibyte opcodes and in the case of multiple scopes.
llvm-svn: 98036
|
|
|
|
|
|
| |
beginScope and RecordSourceLine.
llvm-svn: 98035
|
|
|
|
|
|
| |
now that the dependence on ID is removed from MMI.
llvm-svn: 98034
|
|
|
|
|
|
| |
happens, the start/end of a scope can never be the same.
llvm-svn: 98032
|
|
|
|
|
|
|
| |
and add a FIXME about how we are eventually going to zap this
lookup table once mc world domination is complete.
llvm-svn: 98031
|
|
|
|
| |
llvm-svn: 98025
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 98017
|
|
|
|
|
|
| |
recomputation of the labels.
llvm-svn: 98016
|
|
|
|
| |
llvm-svn: 98015
|
|
|
|
|
|
|
| |
the one special case into EmitSectionOffset. MCize
the non-special case in EmitSectionOffset.
llvm-svn: 98014
|