51819 Commits

Author SHA1 Message Date
Nate Begeman
a9e552182a Teach the legalizer to propagate the original alignment of loads and store when
it splits them.

llvm-svn: 81815
2009-09-15 00:14:28 +00:00
Dan Gohman
9401b2fcab On x86-64, the 32-bit cmov doesn't actually clear the high 32-bit of
its result if the condition is false.

llvm-svn: 81814
2009-09-15 00:14:11 +00:00
Nate Begeman
e9572a945b Add an "original alignment" field to load and store nodes. This enables the
DAG Combiner to disambiguate chains for loads and stores of types which are
 broken up by the Legalizer into smaller pieces.  

llvm-svn: 81813
2009-09-15 00:13:12 +00:00
Dan Gohman
ec42afc1dc When extending a memset range past the front, set the alignment of the
memset region to the alignment of the new start address.

llvm-svn: 81810
2009-09-14 23:39:10 +00:00
Erick Tryzelaar
cd5ce50e17 Expose initializing the native target for the execution engine.
llvm-svn: 81800
2009-09-14 21:54:32 +00:00
Erick Tryzelaar
0e2d5db045 Make sure to initialize the fpm in the ocaml tutorial.
llvm-svn: 81799
2009-09-14 21:54:15 +00:00
Evan Cheng
83bb285c97 Add early coalescing to liveintervals. This is work in progress and is known to miscompute some tests. Read it at your own rish, I have aged 10 year while writing this.
The gist of this is if source of some of the copies that feed into a phi join is defined by the phi join, we'd like to eliminate them. However, if any of the non-identity source overlaps the live interval of the phi join then the coalescer won't be able to coalesce them. The early coalescer's job is to eliminate the identity copies by partially-coalescing the two live intervals.

llvm-svn: 81796
2009-09-14 21:33:42 +00:00
Bill Wendling
f43d8a08b0 Pull the creation of the "RewindFunction" function out of the loop. It's only
created once, so shouldn't be stuck in the middle of the loop. Also early exit
if there are no uses of UnwindInst in the function.

llvm-svn: 81785
2009-09-14 20:52:37 +00:00
Dan Gohman
5c7448cb12 Update a comment to match the source. PseudoSourceValues are now
obtained via accessor functions.

llvm-svn: 81782
2009-09-14 20:40:10 +00:00
Jim Grosbach
5f662f31bc trivial whitespace cleanup
llvm-svn: 81773
2009-09-14 17:27:35 +00:00
Chris Lattner
444c69afae add PR#
llvm-svn: 81770
2009-09-14 16:49:26 +00:00
Eric Christopher
d6982c76a8 Enable the jit for llvm-config.
Patch by Xerxes Rånby!

llvm-svn: 81768
2009-09-14 16:38:49 +00:00
Daniel Dunbar
35a1ac3e03 Add a valgrind suppressions file for x86_64/linux/4.3.3.
llvm-svn: 81766
2009-09-14 16:10:32 +00:00
Daniel Dunbar
c98a9cbdc8 Add a VALGRIND_EXTRA_ARGS makefile variable, with the obvious semantics.
llvm-svn: 81764
2009-09-14 15:27:43 +00:00
Daniel Dunbar
52dc654026 Update CMake dependencies.
llvm-svn: 81758
2009-09-14 05:22:54 +00:00
Daniel Dunbar
d729752a24 Update CMake.
llvm-svn: 81757
2009-09-14 05:22:47 +00:00
Chris Lattner
ec805c1a5d PIC16 does allow colon after MBB labels, simplify EmitBasicBlockStart.
llvm-svn: 81755
2009-09-14 03:15:54 +00:00
Chris Lattner
4a33f01892 Change MCAsmStreamer to take an MCInstPrinter instead of a
full AsmPrinter, and change TargetRegistry to keep track
of registered MCInstPrinters.

llvm-mc is still linking in the entire
target foo to get the code emitter stuff, but this is an
important step in the right direction.

llvm-svn: 81754
2009-09-14 03:02:37 +00:00
Daniel Dunbar
d715512750 Teach 'make check-lit' to run unittests.
llvm-svn: 81753
2009-09-14 02:39:01 +00:00
Daniel Dunbar
23724b98d0 Attempt to fix some 4.0.0 build warnings.
llvm-svn: 81752
2009-09-14 02:38:53 +00:00
Daniel Dunbar
2808cdfdbe lit: Give test formats control over test discovery.
llvm-svn: 81751
2009-09-14 02:38:46 +00:00
Nick Lewycky
65180a9be4 Fix a pair of comment typos.
llvm-svn: 81750
2009-09-14 02:25:34 +00:00
Nick Lewycky
02986c78c5 Fifth time's a charm! Remove ourselves as abstract type listeners once we've
been told that the type is no longer abstract.

llvm-svn: 81749
2009-09-14 02:25:19 +00:00
Chris Lattner
a00e070ea0 Give MCInstPrinter a MCAsmInfo member, make X86ATTInstPrinter
be a MCInstPrinter.

llvm-svn: 81746
2009-09-14 01:49:26 +00:00
Chris Lattner
27a850eb70 add a new MCInstPrinter class, move the (trivial) MCDisassmbler ctor inline.
llvm-svn: 81745
2009-09-14 01:43:38 +00:00
Chris Lattner
8da6598a75 tidy up a bit.
llvm-svn: 81744
2009-09-14 01:34:40 +00:00
Chris Lattner
c87179b542 slightly increase prettiness.
llvm-svn: 81742
2009-09-14 01:27:50 +00:00
Chris Lattner
c4a64a08ec emit the register table as a massive string to avoid relocations.
llvm-svn: 81741
2009-09-14 01:26:18 +00:00
Chris Lattner
d823d97b3a move StringToOffsetTable out to its own header.
llvm-svn: 81740
2009-09-14 01:19:16 +00:00
Chris Lattner
68ed8d21f8 factor string table generation out to its own class. This changes
the encoding of the AsmStrs table saving a byte or two.

llvm-svn: 81739
2009-09-14 01:16:36 +00:00
Nick Lewycky
e38e763387 Don't leak! Always remove oneself as a listener after adding oneself.
llvm-svn: 81736
2009-09-14 00:36:52 +00:00
Nick Lewycky
c4bde40e87 Actually remove old types from the set.
Also break the type verification stuff into its own TypeSet to keep the
Verifier pass from becoming an AbstractTypeUser.

llvm-svn: 81729
2009-09-13 23:45:39 +00:00
Chris Lattner
b88e0d1715 eliminate the TargetRegisterDesc::AsmName field, the asmprinters now have this table.
llvm-svn: 81728
2009-09-13 22:45:04 +00:00
Chris Lattner
fbe97bcd52 kill off the last use of TRI::AsmName.
llvm-svn: 81727
2009-09-13 22:42:03 +00:00
Chris Lattner
830f090c2e add some special case handling for strangely named x86 registers.
llvm-svn: 81726
2009-09-13 22:41:48 +00:00
Daniel Dunbar
49c00ccc78 Build (not test) the unittests as part of a normal build.
- 'make unittests' still builds and tests.
 - 'make unitcheck' inside a unittest directory runs the tests in that directory.

llvm-svn: 81725
2009-09-13 22:39:27 +00:00
Chris Lattner
fff91a414b unbreak this test by working around an asmparser bug.
llvm-svn: 81724
2009-09-13 22:28:17 +00:00
Chris Lattner
8724d994d0 'printMCInst' doesn't print newlines after instructions anymore.
llvm-svn: 81723
2009-09-13 22:24:34 +00:00
Oscar Fuentes
8edea46b44 CMake: New user-settable variable LLVM_TARGET_ARCH useful when
cross-compiling.

Patch by Xerxes Rånby!

llvm-svn: 81722
2009-09-13 22:18:38 +00:00
Nick Lewycky
d89dea7a2e Update the tutorial to match changes to examples/Kaleidoscope.
One change I'm not folding in is the removal of two unused variables that
caused warnings, because those were there for expository purposes.

llvm-svn: 81721
2009-09-13 21:38:54 +00:00
Daniel Dunbar
b57fad2300 Move unittest driver to utils/unittest/UnitTestMain.
- This eliminates a race between building the unittests and linking the
   UnitTestMain library.

llvm-svn: 81719
2009-09-13 21:31:21 +00:00
Daniel Dunbar
8e0f9e60d7 Remove unused variables.
llvm-svn: 81718
2009-09-13 21:31:07 +00:00
Nick Lewycky
9b6c23aba0 Storing a set of PATypeHolders is a bad idea because their sort order will
change as types are refined. Remove abstract types from CheckedTypes when they
we're informed that they have been refined. The only way types get refined in
the verifier is when later function passes start optimizing. Fixes PR4970.

llvm-svn: 81716
2009-09-13 21:07:59 +00:00
Chris Lattner
334aa7a1d4 remove all but one reference to TargetRegisterDesc::AsmName.
llvm-svn: 81714
2009-09-13 20:31:40 +00:00
Chris Lattner
20b7392123 the tblgen produced 'getRegisterName' method does not access
the object, make it static instead of const.

llvm-svn: 81711
2009-09-13 20:19:22 +00:00
Chris Lattner
31c7141542 switch the x86 asmprinters to use getRegisterName instead
of getting it from TRI, inst printing now is codegen context
free!

llvm-svn: 81710
2009-09-13 20:15:16 +00:00
Mikhail Glushenkov
cea934f803 Fix a small issue with recent changes to this code.
The 'false.c' file wasn't being used.

llvm-svn: 81709
2009-09-13 20:14:57 +00:00
Chris Lattner
0cde5283e3 make tblgen produce a function that returns the name for a physreg.
Nothing is using this info yet.

llvm-svn: 81707
2009-09-13 20:08:00 +00:00
Chris Lattner
1e264d7506 eliminate an extraneous use of TRI::getAsmName in a comment.
llvm-svn: 81705
2009-09-13 19:48:37 +00:00
Chris Lattner
fb0e41caef make intel asmprinter use TRI::getAsmName instead of TRI::getName like
all the other targets.  Add support for weak/linkonce linkage so it doesn't
crash on basically all nontrivial testcases.

llvm-svn: 81704
2009-09-13 19:44:38 +00:00