1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 20:43:44 +02:00
Commit Graph

9080 Commits

Author SHA1 Message Date
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
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
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
4494a28b3c mcstreamerize AsmPrinter::printLabel.
llvm-svn: 98025
2010-03-09 01:02:30 +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
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
Chris Lattner
10d571f349 simplify EmitSectionOffset to always use .set if it is
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
2010-03-08 23:23:25 +00:00
Chris Lattner
9dfcbeaca1 Remove a version of EmitDifference.
llvm-svn: 98002
2010-03-08 23:02:59 +00:00
Chris Lattner
81bf3f933d eliminate a form of PrintLabelName.
llvm-svn: 97999
2010-03-08 22:52:49 +00:00
Chris Lattner
bbd8af41d3 remove another form of EmitReference.
llvm-svn: 97998
2010-03-08 22:50:36 +00:00
Chris Lattner
4ccfa3d315 eliminate the non-MCSymbol versions of EmitReference.
llvm-svn: 97997
2010-03-08 22:47:57 +00:00
Chris Lattner
2bbaab13d8 mc'ize EmitLabel.
llvm-svn: 97996
2010-03-08 22:44:40 +00:00
Chris Lattner
bfd38653e6 merge DIEObjectLabel and DIEDwarfLabel into DIELabel.
Yes, DIE you fiendish labels, die all of you.

llvm-svn: 97995
2010-03-08 22:31:46 +00:00
Chris Lattner
cbce2df237 elimiante the DWLabel class, using MCSymbol instead. Start
switching some stuff over to passing around MCSymbol* instead
of stem+ID.

llvm-svn: 97993
2010-03-08 22:23:36 +00:00
Devang Patel
ea239f6e0a Derive DIType from DIScope. This simplifies getContext() where for members the context is a type. This also eliminates need of CompileUnitMaps maintained by dwarf writer.
llvm-svn: 97990
2010-03-08 22:02:50 +00:00
Devang Patel
176dc29a62 Avoid using DIDescriptor.isNull().
This is a first step towards eliminating checks in Descriptor constructors.

llvm-svn: 97975
2010-03-08 20:52:55 +00:00
Devang Patel
a716e313d6 Revert r97947.
llvm-svn: 97963
2010-03-08 19:20:38 +00:00
Devang Patel
1527b2657b Avoid using DIDescriptor.isNull().
This is a first step towards eliminating unncessary constructor checks in light weight DIDescriptor wrappers.

llvm-svn: 97947
2010-03-08 18:25:48 +00:00
Dale Johannesen
b87c6c82e6 Add Order to SDDbgValue
llvm-svn: 97939
2010-03-08 05:39:50 +00:00
Dale Johannesen
d610f0a82a Fix dbg value handling in tail merging.
llvm-svn: 97938
2010-03-08 05:38:13 +00:00
Douglas Gregor
c52fc8f922 Revert r97917, which was causing Clang Debug self-host failures.
llvm-svn: 97932
2010-03-08 02:58:37 +00:00
Jeffrey Yasskin
2c23c1d1a1 Roll r97906 forward again, without double-deleting CompileUnit::IndexTyDie.
llvm-svn: 97917
2010-03-07 17:10:13 +00:00
Chris Lattner
f3ee582f23 Use Other as a sentinel instead of iAny.
llvm-svn: 97914
2010-03-07 07:45:08 +00:00
Jeffrey Yasskin
c68dc05867 _2_ gcc crashes, ah, ah, ah...
(Rolling back r97906.)

llvm-svn: 97909
2010-03-07 07:16:49 +00:00
Jeffrey Yasskin
c0123f0033 Avoid leaking CompileUnits and DbgScopes from DwarfDebug. Leaks found by Valgrind!
llvm-svn: 97906
2010-03-07 06:55:35 +00:00
Chris Lattner
6dbe3336f9 tidy up
llvm-svn: 97895
2010-03-07 04:28:09 +00:00
Evan Cheng
d8e0138666 Don't update physical register def.
llvm-svn: 97861
2010-03-06 01:14:19 +00:00
Dale Johannesen
f0c8e76a85 Add some new bits of debug info handling. No
functional change yet.

llvm-svn: 97855
2010-03-06 00:03:23 +00:00
Dan Gohman
00a652eea0 Reapply r97778 and r97779, enabled only for unsigned i64 to f64
conversions.

llvm-svn: 97854
2010-03-06 00:00:55 +00:00
Charles Davis
faa2f44081 Don't emit global symbols into the (__TEXT,__ustring) section on Darwin. This
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
2010-03-05 22:28:45 +00:00
Jakob Stoklund Olesen
4e033d2070 Better handling of dead super registers in LiveVariables. We used to do this:
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
2010-03-05 21:49:17 +00:00
Jakob Stoklund Olesen
1fce28720a We don't really care about correct register liveness information after the
post-ra scheduler has run. Disable the verifier checks that late in the game.

llvm-svn: 97837
2010-03-05 21:49:13 +00:00
Jakob Stoklund Olesen
67476519d7 Avoid creating bad PHI instructions when BR is being const-folded.
llvm-svn: 97836
2010-03-05 21:49:10 +00:00
Chris Lattner
80aaccb987 Fix PR6497, a bug where we'd fold a load into an addc
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
2010-03-05 06:19:13 +00:00
Chris Lattner
d7353d219f inline a small function with one call site.
llvm-svn: 97789
2010-03-05 05:49:45 +00:00