Commit Graph

66949 Commits

Author SHA1 Message Date
Chris Lattner 295097cc32 add some nounwind's.
llvm-svn: 119086
2010-11-14 22:22:14 +00:00
Chris Lattner 2f9f63af0b lower PPC::MFCRpseud when transforming to MC, avoiding calling
the aborting printSpecial() method.  This gets us to 8 failures.

llvm-svn: 119084
2010-11-14 22:03:15 +00:00
Chris Lattner cfb6287487 make the stubbed-out printer methods abort instead of
printing nothing.  This gets us back up to 24 failures.

llvm-svn: 119083
2010-11-14 21:54:34 +00:00
Chris Lattner f2cb69cb04 wire up a few more things, down to 4 test failures, all
about handling $stub, lo/hi etc.

llvm-svn: 119082
2010-11-14 21:51:37 +00:00
Chris Lattner e2d75bf681 properly wire up the instprinter to the ppc64 backend, down to 5 failures.
llvm-svn: 119081
2010-11-14 21:42:53 +00:00
Chris Lattner 219cc3d586 implement pretty printing support for the various pseudo
ops the asmprinter supported, fixing PowerPC/rlwimi2.ll
among others.  Down to 20 failures.

llvm-svn: 119080
2010-11-14 21:39:51 +00:00
Chris Lattner c2ac86e261 Wire up symbol hi/lo printing. We don't print hi()/lo(), but this gets
us further along.  Only 28 failures now.

llvm-svn: 119079
2010-11-14 21:33:07 +00:00
Chris Lattner 3dc9bb245f implement basic support for symbol operand lowering,
and printing support for call operands.  Down to 77 failures.

llvm-svn: 119078
2010-11-14 21:20:46 +00:00
Oscar Fuentes edf0a1d55e Detect presence of AsmPrinter's. Remove some cruft too.
llvm-svn: 119077
2010-11-14 21:17:13 +00:00
Oscar Fuentes 07c99ebf52 Updated CMake library dependencies.
llvm-svn: 119076
2010-11-14 21:17:08 +00:00
Chris Lattner 2aa8becf33 trim #includes.
llvm-svn: 119075
2010-11-14 21:16:04 +00:00
Chris Lattner 5c1b0cdec2 switch PPC to a simplified MCInstLowering model.
llvm-svn: 119074
2010-11-14 21:12:33 +00:00
Rafael Espindola a7d0bed336 Fix another case of a .comm directive without a corresponding .type
directive.

llvm-svn: 119073
2010-11-14 21:11:16 +00:00
Chris Lattner 0927edf815 fix PPC.h to not pull in TargetMachine.h
llvm-svn: 119072
2010-11-14 21:09:28 +00:00
Chris Lattner de16ca8ecc rename LowerToMCInst -> LowerARMMachineInstrToMCInst.
llvm-svn: 119071
2010-11-14 21:00:02 +00:00
Chris Lattner c5afd12557 even more simplifications. ARM MCInstLowering is now just
a single function instead of a class.  It doesn't need the
complexity that X86 does.

llvm-svn: 119070
2010-11-14 20:58:38 +00:00
Chris Lattner 7c4dfc28ce hopefully unbreak the cmake build, patch by frits van bommel.
llvm-svn: 119069
2010-11-14 20:51:15 +00:00
Chris Lattner 18442f5543 more shrinkification
llvm-svn: 119068
2010-11-14 20:41:53 +00:00
Chris Lattner 3040e8c69b more simplifications.
llvm-svn: 119067
2010-11-14 20:40:08 +00:00
Chris Lattner b28e691657 simplify and tidy up
llvm-svn: 119066
2010-11-14 20:31:06 +00:00
Chris Lattner 0dcd800b22 implement basic support for memory operands and crbit operands,
this fixes 3 more ppc tests.

llvm-svn: 119065
2010-11-14 20:22:56 +00:00
Oscar Fuentes 4d39cc4a62 CMakeLists.txt: removed mismatched endif predicate.
llvm-svn: 119064
2010-11-14 20:15:05 +00:00
Chris Lattner 9488143769 implement several trivial operand printers, reducing
failures in CodeGen/PowerPC from 120 -> 117

llvm-svn: 119063
2010-11-14 20:11:21 +00:00
Chris Lattner 7a5c57ecf4 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 

llvm-svn: 119062
2010-11-14 20:02:39 +00:00
Chris Lattner 686a095d89 stub out PPCMCInstLowering, add a new option that uses it and the new
instprinter when -enable-ppc-inst-printer is passed to llc.

llvm-svn: 119061
2010-11-14 19:53:02 +00:00
Rafael Espindola b05ef7377a Fix the type of a symbol created with .comm and no corresponding .type.
llvm-svn: 119060
2010-11-14 19:40:55 +00:00
Chris Lattner a76eab433a stub out a powerpc MCInstPrinter implementation.
llvm-svn: 119059
2010-11-14 19:40:38 +00:00
Chris Lattner a4113464f3 hopefully fix cmake as well.
llvm-svn: 119058
2010-11-14 19:12:57 +00:00
Chris Lattner 287766075f 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.

llvm-svn: 119057
2010-11-14 19:10:47 +00:00
Chris Lattner 66031ed839 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.

llvm-svn: 119056
2010-11-14 18:43:56 +00:00
Duncan Sands b99f39b9f6 If dom tree information is available, make it possible to pass
it to get better phi node simplification.

llvm-svn: 119055
2010-11-14 18:36:10 +00:00
Chris Lattner 56477d1690 move PPCAsmPrinter into the main PPC library, like ARM and X86.
llvm-svn: 119054
2010-11-14 18:33:33 +00:00
Chris Lattner dab307c6f4 fix cmake
llvm-svn: 119053
2010-11-14 18:27:11 +00:00
Chris Lattner 7b783e7cb2 no alpha jit support.
llvm-svn: 119052
2010-11-14 18:25:50 +00:00
Chris Lattner 9007c368c6 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.

llvm-svn: 119051
2010-11-14 18:24:41 +00:00
Dale Johannesen 2cd8b08207 Segregate tests by target.
llvm-svn: 119050
2010-11-14 18:14:32 +00:00
Chris Lattner 57479f5ce9 random acts of tidiness.
llvm-svn: 119049
2010-11-14 18:09:50 +00:00
Duncan Sands 4581ddc123 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).

llvm-svn: 119043
2010-11-14 13:30:18 +00:00
Duncan Sands 1d27f01210 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.

llvm-svn: 119041
2010-11-14 12:53:18 +00:00
NAKAMURA Takumi dddfdc81ef unittests/CMakeLists.txt: Add missing VMCore/ValueMapTest.cpp to VMCoreTests.
llvm-svn: 119040
2010-11-14 12:37:51 +00:00
Duncan Sands 7e800d6f9c Strip trailing whitespace.
llvm-svn: 119038
2010-11-14 11:23:23 +00:00
Chris Lattner 8d22ff90a3 rename test.
llvm-svn: 119033
2010-11-14 07:03:49 +00:00
Chris Lattner befbf975e8 filecheckize, remove an old and useless test
llvm-svn: 119032
2010-11-14 07:03:38 +00:00
Chris Lattner 4e44cb8bcb this test is pretty pointless and "propogation" isn't a word (or so Misha claims).
llvm-svn: 119031
2010-11-14 07:02:03 +00:00
Owen Anderson e0f6b41618 Second attempt at providing correct encodings for Thumb2 binary operators.
llvm-svn: 119029
2010-11-14 05:37:38 +00:00
Rafael Espindola 7d0ba3464e 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.

llvm-svn: 119026
2010-11-14 04:17:37 +00:00
NAKAMURA Takumi fd781bf043 FileCheck: Eliminate DOSish \r from input file.
It can pass two tests below on Win32.
  - Clang :: CodeGenCXX/dyncast.cpp
  - LLVM :: CodeGen/ARM/globals.ll

llvm-svn: 119023
2010-11-14 03:28:22 +00:00
Rafael Espindola 0e3decfcf7 Simplify getSymbolIndexInSymbolTable by setting the actual index of
the symbols.

llvm-svn: 119022
2010-11-14 03:12:24 +00:00
Rafael Espindola eba9022652 Fix warning.
llvm-svn: 119021
2010-11-14 01:34:31 +00:00
Duncan Sands 8c58ba4199 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

llvm-svn: 119009
2010-11-13 21:33:19 +00:00