Jakob Stoklund Olesen
0e8f00292c
Try to keep the cached inliner costs around for a bit longer for big functions.
...
The Caller cost info would be reset everytime a callee was inlined. If the
caller has lots of calls and there is some mutual recursion going on, the
caller cost info could be calculated many times.
This patch reduces inliner runtime from 240s to 0.5s for a function with 20000
small function calls.
llvm-svn: 98089
2010-03-09 22:17:11 +00:00
Jakob Stoklund Olesen
aade5b423a
Permit inlining into huge functions. This heuristic is ancient, and inlining
...
can sometimes help reduce function size.
llvm-svn: 98088
2010-03-09 22:17:06 +00:00
Jim Grosbach
f328c5334f
Change the Value argument to eliminateFrameIndex to a type-tagged value. This
...
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
2010-03-09 21:45:49 +00:00
Johnny Chen
7cca4927aa
MSR (Move to Special Register from ARM core register) requires a mask to specify
...
what fields of the CPSR or SPSR are affected.
llvm-svn: 98085
2010-03-09 21:39:34 +00:00
Daniel Dunbar
f33a8c5ab6
MC/Mach-O: For PCrel relocations, we need to compensate for the PCrel adjustment when determining if we need a scattered relocation.
...
llvm-svn: 98082
2010-03-09 21:27:58 +00:00
Daniel Dunbar
94ed4ba5e0
MC/Mach-O: Also set the PCrel bit in the second half of paired relocation entries.
...
llvm-svn: 98081
2010-03-09 21:27:47 +00:00
Daniel Dunbar
90e934ff65
MC/Mach-O: Don't generate relocations for PCrel fixups to local labels.
...
llvm-svn: 98080
2010-03-09 21:27:30 +00:00
Dale Johannesen
4b8f3692f4
The address of an indirect call must be in R12 on Darwin.
...
Make it so. (This patch is in LowerCall_Darwin, which seems
to be used by SVR4 code as well; since that doesn't belong here,
I haven't worried about this case.)
llvm-svn: 98077
2010-03-09 20:15:42 +00:00
Chandler Carruth
56cc9d3c6a
Consolidate GoogleTest make options and duplicate them to its own makefile.
...
llvm-svn: 98074
2010-03-09 19:24:49 +00:00
Jim Grosbach
195c494922
scavenged frame index value re-use gets confused when more than one base
...
register is involved for thumb1. Work around this for the moment by only
re-using SP-relative offsets. This is temporary 'til the code can distinguish
multiple base registers.
llvm-svn: 98071
2010-03-09 19:07:28 +00:00
Bill Wendling
c9cfc16363
The ARM EH experiment worked!
...
Place the LSDA into the TEXT section for ARM platforms. This involves making the
encoding indirect, pcrel, and sdata4 instead of an absolute pointer. The
references to the type infos are then non-lazy pointers. Revision 98019 changed
the encoding of non-lazy pointers to add the symbol to the non-lazy pointer
definition if it's a local symbol (otherwise, it's external and set to '0' so
that the loader can adjust it to the real value). This paved the way for this
change to work on ARM.
llvm-svn: 98068
2010-03-09 18:31:07 +00:00
Richard Osborne
4077517135
In cases where the carry / borrow unused converted ladd / lsub
...
to an add or a sub.
llvm-svn: 98059
2010-03-09 16:34:25 +00:00
Richard Osborne
e33e24e6cb
Canonicalize ladd constant to RHS.
...
llvm-svn: 98058
2010-03-09 16:13:57 +00:00
Richard Osborne
173efed224
Add DAG combine for ladd / lsub.
...
llvm-svn: 98057
2010-03-09 16:07:47 +00:00
Duncan Sands
26e65e7ee8
Attempt to fix random build failures seen when doing highly
...
parallel builds: the gold plugin fails to link because the lto
library is in the middle of being written out by the linker.
llvm-svn: 98054
2010-03-09 09:03:21 +00:00
Evan Cheng
625a7248d6
Allow more cross-rc coalescing.
...
llvm-svn: 98048
2010-03-09 06:38:17 +00:00
Chris Lattner
d51f1bdc58
reapply r98035:
...
Now that setStartLabel takes an MCSymbol, we can de-ID'ize
beginScope and RecordSourceLine.
llvm-svn: 98047
2010-03-09 04:54:43 +00:00
Chris Lattner
43b812b6a8
add some extra checks. I'm not sure why, but this does unbreak a
...
failure remaining on mainline.
llvm-svn: 98046
2010-03-09 04:48:35 +00:00
Evan Cheng
1b43094229
Revert accidental commit.
...
llvm-svn: 98045
2010-03-09 04:04:38 +00:00
Jakob Stoklund Olesen
cc6b4fdf11
Don't do illegal cross-class coalescing.
...
llvm-svn: 98044
2010-03-09 03:56:06 +00:00
Evan Cheng
8277a90f75
- Make the machine cse dumb coalescer (as opposed to the more awesome simple
...
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
2010-03-09 03:21:12 +00:00
Dan Gohman
18aa7d328e
Don't try to fold V_SET0 and V_SETALLONES to loads in medium and
...
large code models.
llvm-svn: 98042
2010-03-09 03:01:40 +00:00
Bill Wendling
344fec6285
This is part of an LLC-beta test used to test <rdar://problem/6804645>. Please
...
bear with the awful code. It won't last in its current state beyond tonight.
llvm-svn: 98040
2010-03-09 02:46:12 +00:00
Eric Christopher
8875eba06a
Speculatively revert r98035. It appears to have caused a set of buildbot
...
failures.
llvm-svn: 98039
2010-03-09 02:36:31 +00:00
Dan Gohman
0d69c61fec
Attempt to make this debug output meaningful, both in the case of
...
multibyte opcodes and in the case of multiple scopes.
llvm-svn: 98036
2010-03-09 02:15:05 +00:00
Chris Lattner
c4a74bf48b
Now that setStartLabel takes an MCSymbol, we can de-ID'ize
...
beginScope and RecordSourceLine.
llvm-svn: 98035
2010-03-09 02:08:02 +00:00
Chris Lattner
f7ad2622cc
change DbgScope to keep track of the start/end label as MCSymbol*
...
now that the dependence on ID is removed from MMI.
llvm-svn: 98034
2010-03-09 01:58:53 +00:00
Dan Gohman
c421549beb
Make isLCSSA ignore uses in blocks not reachable from the entry block,
...
as LCSSA no longer transforms such uses.
llvm-svn: 98033
2010-03-09 01:53:33 +00:00
Chris Lattner
a72a32a06b
remove a useless optimization: now that label replacement never
...
happens, the start/end of a scope can never be the same.
llvm-svn: 98032
2010-03-09 01:52:43 +00:00
Chris Lattner
d4ce7a73e8
strength reduce MMI::MappedLabel to MMI::isLabelDeleted,
...
and add a FIXME about how we are eventually going to zap this
lookup table once mc world domination is complete.
llvm-svn: 98031
2010-03-09 01:51:43 +00:00
Chris Lattner
73de790f59
inline RemapLabel into its only caller and simplify.
...
llvm-svn: 98029
2010-03-09 01:29:59 +00:00
Daniel Dunbar
8e3e2688b5
MC/Mach-O: Tweak .dump() formatting.
...
llvm-svn: 98028
2010-03-09 01:12:23 +00:00
Daniel Dunbar
e3986eb967
MC/Mach-O: Don't adjust section sizes when aligning zero fill sections, just pad the address.
...
llvm-svn: 98027
2010-03-09 01:12:20 +00:00
Dale Johannesen
d79b87c260
Another place where debug info affected codegen.
...
llvm-svn: 98026
2010-03-09 01:08:11 +00:00
Chris Lattner
4494a28b3c
mcstreamerize AsmPrinter::printLabel.
...
llvm-svn: 98025
2010-03-09 01:02:30 +00:00
Jakob Stoklund Olesen
5b150ee899
Add inlining threshold to log output.
...
llvm-svn: 98024
2010-03-09 00:59:53 +00:00
Jakob Stoklund Olesen
3d0157ae7e
Disable physical register coalescing when the number of live ranges for the
...
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
2010-03-09 00:59:48 +00:00
Devang Patel
4995bb0450
Start using DIFile. See updated SourceLevelDebugging.html for more information.
...
This patch updates LLVMDebugVersion to 8.
Debug info descriptors encoded using LLVMDebugVersion 7 is supported.
Corresponding llvmgcc and clang FE commits are required.
llvm-svn: 98020
2010-03-09 00:44:10 +00:00
Bill Wendling
a2ed617fa9
Print blank line and clear stubs vector.
...
llvm-svn: 98019
2010-03-09 00:43:34 +00:00
Bill Wendling
a9e3eb7d2d
MC-ize the stub printing in ARM.
...
llvm-svn: 98018
2010-03-09 00:40:17 +00:00
Chris Lattner
8147c144d9
add a EmitSymbolValue convenience method to MCStreamer.
...
llvm-svn: 98017
2010-03-09 00:39:24 +00:00
Chris Lattner
db93b91db1
make InlineInfoLabels hold MCSymbol*'s, avoiding
...
recomputation of the labels.
llvm-svn: 98016
2010-03-09 00:31:02 +00:00
Chris Lattner
a583d01e79
mc'ize the last use of PrintLabelName and eliminate PrintLabelName.
...
llvm-svn: 98015
2010-03-09 00:26:09 +00:00
Chris Lattner
644850459d
eliminate an argument from PrintRelDirective, sinking
...
the one special case into EmitSectionOffset. MCize
the non-special case in EmitSectionOffset.
llvm-svn: 98014
2010-03-09 00:17:58 +00:00
Dan Gohman
cc7ed51fa3
Print the correct index in the "match failed at index" message.
...
llvm-svn: 98013
2010-03-09 00:07:36 +00:00
Chris Lattner
06f5a077de
remove the suffix form of PrintLabelName, which was only
...
used for 'flavor'.
llvm-svn: 98012
2010-03-09 00:00:57 +00:00
Chris Lattner
183e87502e
now that the debug and eh emitters use a common .set counter,
...
we can eliminate "flavor".
llvm-svn: 98011
2010-03-09 00:00:15 +00:00
Chris Lattner
99ca33d324
move .set generation out of DwarfPrinter into AsmPrinter and
...
MCize it.
llvm-svn: 98010
2010-03-08 23:58:37 +00:00
Evan Cheng
8afdea401a
Don't waste time trying to CSE labels, phis, inline asm. Definitely avoid cse implicit-def for obvious performance reason.
...
llvm-svn: 98009
2010-03-08 23:49:12 +00:00
Evan Cheng
ca86fb517c
Restrict machine cse to really trivial coalescing. Leave the heavy lifting to a real coalescer.
...
llvm-svn: 98007
2010-03-08 23:28:08 +00:00