Commit Graph

40074 Commits

Author SHA1 Message Date
Chris Lattner 5ca516b87c move two asmprinter methods into the asmprinter .cpp file.
llvm-svn: 108945
2010-07-20 22:18:19 +00:00
Jakob Stoklund Olesen ed4075cc3b Implement loop splitting analysis.
Determine which loop exit blocks need a 'pre-exit' block inserted.
Recognize when this would be impossible.

llvm-svn: 108941
2010-07-20 21:46:58 +00:00
Dan Gohman 43aa8f03c1 Add support for remapping metadata kind IDs when reading in a
bitcode file, so that two bitcode files where the same metadata kind
name happens to have been assigned a different ID can still be
linked together.

Eliminate the restriction that metadata kind IDs can't be 0.

Change MD_dbg from 1 to 0, because we can now, and because it's
less mysterious that way.

llvm-svn: 108939
2010-07-20 21:42:28 +00:00
Dale Johannesen 6e5ec6263e Fix test for switch statements and increase
threshold a bit per experimentation.

llvm-svn: 108935
2010-07-20 21:29:12 +00:00
Owen Anderson 4154061b92 Move more functionality from Pass.cpp to PassRegistry.cpp. This global will go away eventually, but for now we still need it around.
llvm-svn: 108932
2010-07-20 21:22:24 +00:00
Chris Lattner cbe9856fce prune #includes a little.
llvm-svn: 108929
2010-07-20 21:17:29 +00:00
Matt Fleming a8f6c1cc26 Add some more handlers for ELF section directives.
llvm-svn: 108928
2010-07-20 21:12:46 +00:00
Dan Gohman 47a0f0d56f Remove setDbgMetadata and getDbgMetadata; their users have been
replaced with setDebugLoc and getDebugLoc.

llvm-svn: 108914
2010-07-20 20:18:21 +00:00
Owen Anderson 14d74d649a Let's get those buildbots green: #include is needed in the header, not just the implementation.
llvm-svn: 108912
2010-07-20 20:16:11 +00:00
Dan Gohman d2c7e52d05 Use getDebugLoc and setDebugLoc instead of getDbgMetadata and setDbgMetadata,
avoiding MDNode overhead.

llvm-svn: 108909
2010-07-20 20:09:07 +00:00
Chris Lattner 073660336c apparently also missing an include.
llvm-svn: 108908
2010-07-20 20:06:19 +00:00
Chris Lattner 4e8e93f142 this is in System
llvm-svn: 108895
2010-07-20 19:54:01 +00:00
Bruno Cardoso Lopes 3b505848fd Add new AVX instruction vinsertf128
llvm-svn: 108892
2010-07-20 19:44:51 +00:00
Chris Lattner 6faea9668f turn this into a normal header.
llvm-svn: 108891
2010-07-20 19:43:19 +00:00
Chris Lattner 55cdb62dd0 hopefully heal the linux builders
llvm-svn: 108890
2010-07-20 19:40:51 +00:00
Owen Anderson 660466ed42 I just fail with SVN today.
llvm-svn: 108888
2010-07-20 19:23:55 +00:00
Chris Lattner 91773ea9b2 there is no reason to dynamically generate a static header.
llvm-svn: 108887
2010-07-20 18:59:58 +00:00
Chris Lattner 7e52a45f8a drop edinfo.inc into the objdir for src!=objdir builds.
llvm-svn: 108886
2010-07-20 18:53:27 +00:00
Eric Christopher 529989b8b6 Update header.
llvm-svn: 108883
2010-07-20 18:46:43 +00:00
Owen Anderson 1e8ae64f83 Convert the internal PassRegistrar class into a new, external PassRegistry class. No intended functionality change at this point.
llvm-svn: 108877
2010-07-20 18:39:06 +00:00
Chris Lattner 79d68ddda8 hopefully teach cmake to build the .inc file.
llvm-svn: 108874
2010-07-20 18:33:21 +00:00
Chris Lattner 6219596ff6 cmake too
llvm-svn: 108872
2010-07-20 18:30:37 +00:00
Chris Lattner 3a14721829 forgot to add a file
llvm-svn: 108870
2010-07-20 18:29:50 +00:00
Chris Lattner 979634bbb0 start straightening out libedis's dependencies and make it fit
better in the llvm world.  Among other things, this changes:

1. The guts of libedis are now moved into lib/MC/MCDisassembler
2. llvm-mc now depends on lib/MC/MCDisassembler, not tools/edis,
   so edis and mc don't have to be built in series.
3. lib/MC/MCDisassembler no longer depends on the C api, the C
   API depends on it.
4. Various code cleanup changes. 

There is still a lot to be done to make edis fit with the llvm
design, but this is an incremental step in the right direction.

llvm-svn: 108869
2010-07-20 18:25:19 +00:00
Dan Gohman 12725c7d46 Remember that the induction variable is always a PHINode and
use getIncomingValueForBlock instead of
LoopInfo::getCanonicalInductionVariableIncrement.

llvm-svn: 108865
2010-07-20 17:18:52 +00:00
Dan Gohman 625fd2292d Fix SCEV denormalization of expressions where the exit value from
one loop is involved in the increment of an addrec for another
loop. This fixes rdar://8168938.

llvm-svn: 108863
2010-07-20 17:06:20 +00:00
Owen Anderson 3183ef1120 Pull out r108755. After offline discussion with Chris, we're going to go a different direction with this.
llvm-svn: 108856
2010-07-20 16:55:05 +00:00
Dan Gohman 46f00a25f9 Add a fast path for x - x.
llvm-svn: 108855
2010-07-20 16:53:00 +00:00
Dan Gohman 31158756e4 Simplify this code; LoopInfo::getCanonicalInductionVariable will only
find integer induction variables.

llvm-svn: 108853
2010-07-20 16:46:58 +00:00
Dan Gohman 4fd92434f1 Make getOrInsertCanonicalInductionVariable guarantee that its
result is a PHINode*.

llvm-svn: 108852
2010-07-20 16:44:52 +00:00
Dan Gohman 191f2e4dbd Change an argument from an Instruction* to a Value*, which is all
that is needed here.

llvm-svn: 108850
2010-07-20 16:34:50 +00:00
Dan Gohman d1488fd8bc Minor code cleanups.
llvm-svn: 108848
2010-07-20 16:32:11 +00:00
Jakob Stoklund Olesen ff095507e3 Appease the colonials.
llvm-svn: 108845
2010-07-20 16:12:37 +00:00
Jim Grosbach 3680f70c9d Using BIC for immediates needs an extra bump for its complexity to get
instruction selection to prefer it when possible. rdar://7903972

llvm-svn: 108844
2010-07-20 16:07:04 +00:00
Jakob Stoklund Olesen 36d12c679d Beginning SplitKit - utility classes for live range splitting.
This is a work in progress. So far we have some basic loop analysis to help
determine where it is useful to split a live range around a loop.

The actual loop splitting code from Splitter.cpp is also going to move in here.

llvm-svn: 108842
2010-07-20 15:41:07 +00:00
Jim Grosbach 9c7708cc1b Removed un-used code.
llvm-svn: 108841
2010-07-20 14:51:32 +00:00
Lang Hames 31dfb75b52 Updated css classes for the pressure table legend.
llvm-svn: 108839
2010-07-20 14:35:55 +00:00
Lang Hames 2ff2193a80 Oops - I tables render poorly in Chrome without this explicit height specification.
llvm-svn: 108824
2010-07-20 10:29:46 +00:00
Lang Hames a475ab7f02 Use run-length encoding to represent identical adjacent cells in the pressure
and interval table. Reduces output HTML file sizes by ~80% in my test cases.

Also fix access of private member type by << operator.

llvm-svn: 108823
2010-07-20 10:18:54 +00:00
Lang Hames 716b184108 Added support for turning HTML indentation on and off (indentation off by default).
Reduces output file size ~20% on my test cases.

llvm-svn: 108822
2010-07-20 09:13:29 +00:00
Bruno Cardoso Lopes 160695fecb Fix PR7174, a couple o Mips fixes:
- Fix a typo for PIC check during jmp table lowering
- Also fix the "first jump table basic block is not
considered only reachable by fall through" problem, use this
ad-hoc solution until I come up with something better.

Patch by stetorvs@gmail.com

llvm-svn: 108820
2010-07-20 08:37:04 +00:00
Owen Anderson 81781220d2 Speculatively revert r108813, in an attempt to get the self-host buildbots working again. I don't see why this patch
would cause them to fail the way they are, but none of the other intervening patches seem likely either.

llvm-svn: 108818
2010-07-20 08:26:15 +00:00
Bruno Cardoso Lopes ea7863647b Fix Mips PR7473. Patch by stetorvs@gmail.com
llvm-svn: 108816
2010-07-20 07:58:51 +00:00
Lang Hames a93fe2de3c Switched to rendering after allocation (but before rewriting) in PBQP.
Updated renderer to use allocation information from VirtRegMap (if
available) to render spilled intervals differently.

llvm-svn: 108815
2010-07-20 07:41:44 +00:00
Owen Anderson 8dc129325f Reapply r108794, a fix for the failing test from last time.
llvm-svn: 108813
2010-07-20 06:52:42 +00:00
Eric Christopher 4adaccf0bf Constify some arguments.
llvm-svn: 108812
2010-07-20 06:52:21 +00:00
Daniel Dunbar 4a35d6f8cd Revert r108794, "Separate PassInfo into two classes: a constructor-free
superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).", it is
breaking teh everything.

llvm-svn: 108805
2010-07-20 03:06:07 +00:00
Owen Anderson e7c5fe586a Separate PassInfo into two classes: a constructor-free superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).
llvm-svn: 108794
2010-07-20 01:19:58 +00:00
Dan Gohman 3ff13affda Minor code simplification.
llvm-svn: 108793
2010-07-20 00:57:18 +00:00
Dale Johannesen 08645f1991 Don't hoist things out of a large switch inside a
loop, for the reasons in the comments.  This is a
major win on 253.perlbmk on ARM Darwin.  I expect it
to be a good heuristic in general, but it's possible
some things will regress; I'll be watching.
7940152.

llvm-svn: 108792
2010-07-20 00:50:13 +00:00