Commit Graph

67284 Commits

Author SHA1 Message Date
Chris Lattner
fdb2ded765 implement basic support for memory operands and crbit operands,
this fixes 3 more ppc tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119065 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 20:22:56 +00:00
Oscar Fuentes
14b0c056e6 CMakeLists.txt: removed mismatched endif predicate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119064 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 20:15:05 +00:00
Chris Lattner
99889132f3 implement several trivial operand printers, reducing
failures in CodeGen/PowerPC from 120 -> 117


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119063 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 20:11:21 +00:00
Chris Lattner
0d1b7d9e3d Implement support for printing register and immediate operands,
add support for darwin vs aix syntax.  We now can print instructions
like this:

	add r3, r3, r4
	blr 

and (in aix mode):
	add 3, 3, 4
	blr 



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119062 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 20:02:39 +00:00
Chris Lattner
293ef9ae0f stub out PPCMCInstLowering, add a new option that uses it and the new
instprinter when -enable-ppc-inst-printer is passed to llc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119061 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 19:53:02 +00:00
Rafael Espindola
765fb1a446 Fix the type of a symbol created with .comm and no corresponding .type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119060 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 19:40:55 +00:00
Chris Lattner
60d5b5fdee stub out a powerpc MCInstPrinter implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119059 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 19:40:38 +00:00
Chris Lattner
aeafb894fa hopefully fix cmake as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119058 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 19:12:57 +00:00
Chris Lattner
e15f2e17ea fix the autoconf script to detect "has asmprinter"ness of a target by
looking for lib/Target/*AsmPrinter.cpp.  Fix llvm-config to handle targets
that don't have an explicit AsmPrinter library.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119057 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 19:10:47 +00:00
Chris Lattner
1139691e3a move all the target's asmprinters into the main target. The piece
that should be split out is the InstPrinter (if a target is mc'ized).
This change makes all the targets be consistent.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119056 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 18:43:56 +00:00
Duncan Sands
eff0581583 If dom tree information is available, make it possible to pass
it to get better phi node simplification.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119055 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 18:36:10 +00:00
Chris Lattner
0094345184 move PPCAsmPrinter into the main PPC library, like ARM and X86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119054 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 18:33:33 +00:00
Chris Lattner
02bc19438f fix cmake
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119053 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 18:27:11 +00:00
Chris Lattner
ac3031aa09 no alpha jit support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119052 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 18:25:50 +00:00
Chris Lattner
c476ed93f1 remove JIT support from the Alpha backend. The JIT will be moving to MC,
and the Alpha backend isn't MCized yet.  Approved by Andrew.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119051 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 18:24:41 +00:00
Dale Johannesen
2ae2302abc Segregate tests by target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119050 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 18:14:32 +00:00
Chris Lattner
b0269cd2c8 random acts of tidiness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119049 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 18:09:50 +00:00
Duncan Sands
cd6636c737 Teach InstructionSimplify about phi nodes. I chose to have it simply
offload the work to hasConstantValue rather than do something more
complicated (such handling mutually recursive phis) because (1) it is
not clear it is worth it; and (2) if it is worth it, maybe such logic
would be better placed in hasConstantValue.  Adjust some GVN tests
which are now cleaned up much further (eg: all phi nodes are removed).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119043 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 13:30:18 +00:00
Duncan Sands
c0362d5c6e Boost the power of phi node constant folding slightly: if all
operands are the phi node itself or undef, then return undef.
This logic already existed at a higher level so in practice it
shouldn't make the slightest difference.  Note that this code
could be replaced by a call to PN->hasConstantValue().  However
since we bail out the moment we see a non-constant operand, it
is more efficient to have a specialized version of that logic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119041 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 12:53:18 +00:00
NAKAMURA Takumi
b08ca275bd unittests/CMakeLists.txt: Add missing VMCore/ValueMapTest.cpp to VMCoreTests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119040 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 12:37:51 +00:00
Duncan Sands
12a86f5b31 Strip trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119038 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 11:23:23 +00:00
Chris Lattner
6857373f44 rename test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119033 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 07:03:49 +00:00
Chris Lattner
2fe9b6a125 filecheckize, remove an old and useless test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119032 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 07:03:38 +00:00
Chris Lattner
961e588e9d this test is pretty pointless and "propogation" isn't a word (or so Misha claims).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119031 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 07:02:03 +00:00
Owen Anderson
83da6cd5e2 Second attempt at providing correct encodings for Thumb2 binary operators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119029 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 05:37:38 +00:00
Rafael Espindola
1f4f9e3d35 Handle a peculiar comdat case: Creating a section with an undefined
signature symbol causes a local symbol to be created unless there is
some other use of the symbol.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119026 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 04:17:37 +00:00
NAKAMURA Takumi
9f6e03fa1e FileCheck: Eliminate DOSish \r from input file.
It can pass two tests below on Win32.
  - Clang :: CodeGenCXX/dyncast.cpp
  - LLVM :: CodeGen/ARM/globals.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119023 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 03:28:22 +00:00
Rafael Espindola
ab4a7afe98 Simplify getSymbolIndexInSymbolTable by setting the actual index of
the symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119022 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 03:12:24 +00:00
Rafael Espindola
7e528a1724 Fix warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119021 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 01:34:31 +00:00
Duncan Sands
dd609e912b Testcase to go along with commit 118923 ("Have GVN simplify instructions
as it goes").  Before -std-compile-opts only got it down to
  %a = tail call i32 @foo(i32 0) readnone
  %x = tail call i32 @foo(i32 %a) readnone
  %y = tail call i32 @foo(i32 %a) readnone
  %z = icmp eq i32 %x, %y
  ret i1 %z
while now -basicaa -gvn alone reduce it to
  %a = call i32 @foo(i32 0) readnone
  %x = call i32 @foo(i32 %a) readnone
  ret i1 true



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119009 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 21:33:19 +00:00
Peter Collingbourne
948cf0289f Recognise 32-bit ror-based bswap implementation used by uclibc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119007 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 19:54:30 +00:00
Peter Collingbourne
983611836c Support ; as asm separator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119006 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 19:54:23 +00:00
Duncan Sands
096aa79276 Generalize the reassociation transform in SimplifyCommutative (now renamed to
SimplifyAssociativeOrCommutative) "(A op C1) op C2" -> "A op (C1 op C2)",
which previously was only done if C1 and C2 were constants, to occur whenever
"C1 op C2" simplifies (a la InstructionSimplify).  Since the simplifying operand
combination can no longer be assumed to be the right-hand terms, consider all of
the possible permutations.  When compiling "gcc as one big file", transform 2
(i.e. using right-hand operands) fires about 4000 times but it has to be said
that most of the time the simplifying operands are both constants.  Transforms
3, 4 and 5 each fired once.  Transform 6, which is an existing transform that
I didn't change, never fired.  With this change, the testcase is now optimized
perfectly with one run of instcombine (previously it required instcombine +
reassociate + instcombine, and it may just have been luck that this worked).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119002 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 15:10:37 +00:00
Duncan Sands
768b87c085 Fix typo pointed out by Trevor Harmon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119001 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 12:16:27 +00:00
Bill Wendling
c93989a060 Comment out the defms until they're activated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119000 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 11:20:05 +00:00
Bill Wendling
ddc918b379 Add uses of the *_ldst_multi multiclasses. These aren't used yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118999 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 10:57:02 +00:00
Bill Wendling
1f4abcfa5c Convert the modes to lower case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118998 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 10:43:34 +00:00
Bill Wendling
04863d06fb Minor cleanups:
- Get the opcode once.
- Add a ParserMatchClass to reglist.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118997 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 10:40:19 +00:00
Bill Wendling
6c470b806f Add *_ldst_mult multiclasses to the ARM back-end. These will be used in the
future to separate out the ia, ib, da, db variants of the load/store multiple
instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118995 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 09:09:38 +00:00
Daniel Dunbar
115a3dd066 MC: Simplify Mach-O and ELF object writer implementations.
- What was I thinking?????

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118992 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 07:33:40 +00:00
Wesley Peck
90eff7337d Fixed error and re-enabled MBlaze MC disassembler tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118987 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 05:48:21 +00:00
Evan Cheng
c47f7d643e Conditional moves are slightly more expensive than moves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118985 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 05:14:20 +00:00
Rafael Espindola
e9c0ff2a76 Fix warning and add support for printing gnu_unique_object.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118981 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 04:55:06 +00:00
Rafael Espindola
e13a0ff8ac Parse and record the gnu_unique_object type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118980 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 04:51:02 +00:00
Jim Grosbach
ce8ca9ab0c Trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118978 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 04:17:15 +00:00
Dale Johannesen
4f8b791d0f This test stops after disassembling 1 instructions on
darwin and, judging from the buildbots, Linux.
Removing it for now, but this is not the right fix,
Wesley please look at it.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118977 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 03:55:04 +00:00
Rafael Espindola
c50a0fd7cb Parse and remember discriminators in .loc line. I try to output them with
another patch.
This lets us parse a bit more of the gcc 4.5 output.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118975 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 03:18:27 +00:00
Wesley Peck
7247c079f7 Add test cases that should have been committed with 118969.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118974 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 02:51:00 +00:00
Daniel Dunbar
48dd875be1 JIT: More nitty style tweakage, aka territory marking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118973 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 02:48:57 +00:00
Daniel Dunbar
afd693cff3 report_fatal_error: Simplify a possible ambiguity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118972 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 02:48:51 +00:00