Nate Begeman
71524d716a
Remove incorrect CSE code from r81813.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81819 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-15 00:38:09 +00:00
Sean Callanan
76f14be685
Modified the Intel instruction tables to include
...
versions of CALL and JMP with segmented addresses
provided in-line, as pairs of immediates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81818 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-15 00:35:17 +00:00
Kevin Enderby
ca9c42c4da
Added the first bits of the ARM target assembler to llvm-mc. For now it only
...
parses the .word directive as 4 bytes and ARMAsmParser::ParseInstruction will
give an error is called. Broke out the test of the .word directive into two
different test cases, one for x86 and one for arm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81817 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-15 00:27:25 +00:00
Nate Begeman
b6aef5c867
Substantially speed up combiner-aa in the following ways:
...
1. Switch from an std::set to a SmallPtrSet for visited chain nodes.
2. Do not force the recursive flattening of token factor nodes, regardless of
use count.
3. Immediately process newly created TokenFactor nodes.
Also, improve combiner-aa by teaching it that loads to non-overlapping offsets
of relatively aligned objects cannot alias.
These changes result in a >5x speedup for combiner-aa on most testcases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81816 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-15 00:18:30 +00:00
Nate Begeman
9cae7053c0
Teach the legalizer to propagate the original alignment of loads and store when
...
it splits them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81815 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-15 00:14:28 +00:00
Dan Gohman
907355caf8
On x86-64, the 32-bit cmov doesn't actually clear the high 32-bit of
...
its result if the condition is false.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81814 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-15 00:14:11 +00:00
Nate Begeman
e6798372ea
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81813 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-15 00:13:12 +00:00
Dan Gohman
264d245851
When extending a memset range past the front, set the alignment of the
...
memset region to the alignment of the new start address.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81810 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 23:39:10 +00:00
Erick Tryzelaar
4626268428
Expose initializing the native target for the execution engine.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81800 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 21:54:32 +00:00
Erick Tryzelaar
126d86b9f9
Make sure to initialize the fpm in the ocaml tutorial.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81799 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 21:54:15 +00:00
Evan Cheng
752195e3c6
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81796 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 21:33:42 +00:00
Bill Wendling
43488710a8
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81785 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 20:52:37 +00:00
Dan Gohman
c43fd5a68f
Update a comment to match the source. PseudoSourceValues are now
...
obtained via accessor functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81782 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 20:40:10 +00:00
Jim Grosbach
a672403993
trivial whitespace cleanup
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81773 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 17:27:35 +00:00
Chris Lattner
c2b0d484dc
add PR#
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81770 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 16:49:26 +00:00
Eric Christopher
030e5a0438
Enable the jit for llvm-config.
...
Patch by Xerxes Rånby!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81768 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 16:38:49 +00:00
Daniel Dunbar
3d2a664fe5
Add a valgrind suppressions file for x86_64/linux/4.3.3.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81766 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 16:10:32 +00:00
Daniel Dunbar
3a9719a3b9
Add a VALGRIND_EXTRA_ARGS makefile variable, with the obvious semantics.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81764 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 15:27:43 +00:00
Daniel Dunbar
5ea51ade50
Update CMake dependencies.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81758 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 05:22:54 +00:00
Daniel Dunbar
3228484b5f
Update CMake.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81757 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 05:22:47 +00:00
Chris Lattner
662316c997
PIC16 does allow colon after MBB labels, simplify EmitBasicBlockStart.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81755 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 03:15:54 +00:00
Chris Lattner
90edac0e8b
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81754 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 03:02:37 +00:00
Daniel Dunbar
db5fe936db
Teach 'make check-lit' to run unittests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81753 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 02:39:01 +00:00
Daniel Dunbar
9c29730bb3
Attempt to fix some 4.0.0 build warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81752 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 02:38:53 +00:00
Daniel Dunbar
00a42449ec
lit: Give test formats control over test discovery.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81751 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 02:38:46 +00:00
Nick Lewycky
af7263d51e
Fix a pair of comment typos.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81750 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 02:25:34 +00:00
Nick Lewycky
5df6ffd948
Fifth time's a charm! Remove ourselves as abstract type listeners once we've
...
been told that the type is no longer abstract.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81749 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 02:25:19 +00:00
Chris Lattner
c493fb2f4d
Give MCInstPrinter a MCAsmInfo member, make X86ATTInstPrinter
...
be a MCInstPrinter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81746 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 01:49:26 +00:00
Chris Lattner
65b0b297db
add a new MCInstPrinter class, move the (trivial) MCDisassmbler ctor inline.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81745 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 01:43:38 +00:00
Chris Lattner
f92c95f307
tidy up a bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81744 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 01:34:40 +00:00
Chris Lattner
f96271afed
slightly increase prettiness.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81742 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 01:27:50 +00:00
Chris Lattner
f6761be50d
emit the register table as a massive string to avoid relocations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81741 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 01:26:18 +00:00
Chris Lattner
44da5fbf97
move StringToOffsetTable out to its own header.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81740 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 01:19:16 +00:00
Chris Lattner
3200fc9bad
factor string table generation out to its own class. This changes
...
the encoding of the AsmStrs table saving a byte or two.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81739 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 01:16:36 +00:00
Nick Lewycky
adc3142fdd
Don't leak! Always remove oneself as a listener after adding oneself.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81736 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 00:36:52 +00:00
Nick Lewycky
bc6836bbe3
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81729 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 23:45:39 +00:00
Chris Lattner
e7f3107772
eliminate the TargetRegisterDesc::AsmName field, the asmprinters now have this table.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81728 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 22:45:04 +00:00
Chris Lattner
6a6570a312
kill off the last use of TRI::AsmName.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81727 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 22:42:03 +00:00
Chris Lattner
56d77c7022
add some special case handling for strangely named x86 registers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81726 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 22:41:48 +00:00
Daniel Dunbar
7f068f47a3
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81725 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 22:39:27 +00:00
Chris Lattner
b92c36331d
unbreak this test by working around an asmparser bug.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81724 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 22:28:17 +00:00
Chris Lattner
1b6570e527
'printMCInst' doesn't print newlines after instructions anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81723 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 22:24:34 +00:00
Oscar Fuentes
a9ff1392ea
CMake: New user-settable variable LLVM_TARGET_ARCH useful when
...
cross-compiling.
Patch by Xerxes Rånby!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81722 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 22:18:38 +00:00
Nick Lewycky
422094c38d
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81721 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 21:38:54 +00:00
Daniel Dunbar
f845c74c62
Move unittest driver to utils/unittest/UnitTestMain.
...
- This eliminates a race between building the unittests and linking the
UnitTestMain library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81719 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 21:31:21 +00:00
Daniel Dunbar
f5382ab518
Remove unused variables.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81718 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 21:31:07 +00:00
Nick Lewycky
6735b1c5c4
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81716 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 21:07:59 +00:00
Chris Lattner
762ccea600
remove all but one reference to TargetRegisterDesc::AsmName.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81714 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 20:31:40 +00:00
Chris Lattner
d95148f073
the tblgen produced 'getRegisterName' method does not access
...
the object, make it static instead of const.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81711 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 20:19:22 +00:00
Chris Lattner
c510f4cb6e
switch the x86 asmprinters to use getRegisterName instead
...
of getting it from TRI, inst printing now is codegen context
free!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81710 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 20:15:16 +00:00