Commit Graph

53117 Commits

Author SHA1 Message Date
Evan Cheng f781bd8947 Need a comma after imp-use.
llvm-svn: 84749
2009-10-21 07:56:02 +00:00
Douglas Gregor 05f77d5006 De-bork CMake build
llvm-svn: 84744
2009-10-21 06:01:54 +00:00
Chris Lattner 439fa3eddd Set comment string, patch by Johnny Chen!
llvm-svn: 84743
2009-10-21 05:07:57 +00:00
Chris Lattner 8ed7bef409 make GVN work better when TD is not around:
"In the existing code, if the load and the value to replace it with are
of different types *and* target data is available, it tries to use the
target data to coerce the replacement value to the type of the load.
Otherwise, it skips all effort to handle the type mismatch and just
feeds the wrongly-typed replacement value to replaceAllUsesWith, which
triggers an assertion.

The patch replaces it with an outer if checking for type mismatch, and
an inner if-else that checks whether target data is available and, if
not, returns false rather than trying to replace the load."

Patch by Kenneth Uildriks!

llvm-svn: 84739
2009-10-21 04:11:19 +00:00
Chris Lattner 175d04c90f tidy
llvm-svn: 84738
2009-10-21 04:10:24 +00:00
Bob Wilson 5b5cb92816 Fix some more NEON instruction encoding problems.
Thanks to Johnny Chen for discovering the problem.

llvm-svn: 84732
2009-10-21 02:27:20 +00:00
Devang Patel 1d7f7d21dc Do not remove dead metadata for now.
llvm-svn: 84731
2009-10-21 02:21:34 +00:00
Bob Wilson bd3650cc84 Leave some NEON instruction encoding bits unspecified instead of setting
a default value of zero.  This is important for decoding the instructions.
Patch by Johnny Chen, with some changes from me, too.

llvm-svn: 84730
2009-10-21 02:15:46 +00:00
Mikhail Glushenkov 93f1948caa Clarify documentation on multi_val options.
llvm-svn: 84729
2009-10-21 02:13:52 +00:00
Mikhail Glushenkov 456d734945 Implement any_[not_]empty and list versions of switch_on and [not_]empty.
Useful for OptionPreprocessor.

llvm-svn: 84728
2009-10-21 02:13:13 +00:00
Dan Gohman 682a2d154a Revert r84658 and r84691. They were causing llvm-gcc bootstrap to fail.
llvm-svn: 84727
2009-10-21 01:44:44 +00:00
Chris Lattner bc69313909 IPSCCP is missing stuff.
llvm-svn: 84725
2009-10-21 01:10:37 +00:00
Bill Wendling 42e86ab6c4 This is passing on Darwin PPC.
llvm-svn: 84723
2009-10-21 00:51:40 +00:00
Jeffrey Yasskin 08fa03c740 Delete the MacOSJITEventListener per echristo's request. It was disabled by
default and didn't work anyway.

llvm-svn: 84720
2009-10-21 00:43:48 +00:00
Anton Korobeynikov 7099d0c19c Add note
llvm-svn: 84713
2009-10-21 00:14:15 +00:00
Anton Korobeynikov e43af4a085 Be crazy and assert in case of unsupported modifier passed.
llvm-svn: 84712
2009-10-21 00:13:58 +00:00
Anton Korobeynikov 11074fa73e Handle external symbols
llvm-svn: 84711
2009-10-21 00:13:42 +00:00
Anton Korobeynikov cc55b9086d Distinguish between pcrel imm operands and 'normal' ones. Fix fixes gross weirdness of asmprinting.
llvm-svn: 84710
2009-10-21 00:13:25 +00:00
Anton Korobeynikov 94ba9c27b0 Add basic block operands & jump kinds
llvm-svn: 84709
2009-10-21 00:13:05 +00:00
Anton Korobeynikov 8a06a4e5c8 Ignore all implicit reg operands
llvm-svn: 84708
2009-10-21 00:12:44 +00:00
Anton Korobeynikov 196b0e5431 Add a workaround for different memops prefixes
llvm-svn: 84707
2009-10-21 00:12:27 +00:00
Anton Korobeynikov 4e32bff382 Checkpoint MCInst printer. We (almostly) able to print global / JT / constpool entries
llvm-svn: 84706
2009-10-21 00:12:08 +00:00
Anton Korobeynikov 7cea91e171 Add reg-imm tests
llvm-svn: 84705
2009-10-21 00:11:44 +00:00
Anton Korobeynikov 7fbc0a50d5 Add simple operand printing stuff
llvm-svn: 84704
2009-10-21 00:11:27 +00:00
Anton Korobeynikov 6e78029d82 Add experimental MSP430 MCInstLowering stuff
llvm-svn: 84703
2009-10-21 00:11:08 +00:00
Anton Korobeynikov daaa2f0c31 Wire up MSP430 printMCInst() method
llvm-svn: 84702
2009-10-21 00:10:47 +00:00
Anton Korobeynikov b6e2e4fd50 Add MSP430 InstPrinter stub
llvm-svn: 84701
2009-10-21 00:10:30 +00:00
Anton Korobeynikov 13de81ac40 Use proper target data
llvm-svn: 84700
2009-10-21 00:10:00 +00:00
David Goodwin 4388beb884 Respect src register allocation requirements when breaking anti-dependencies. Remove some dead code.
llvm-svn: 84691
2009-10-20 22:50:43 +00:00
Devang Patel 0c35dbdf03 Cosmetic changes.
s/validName/isValidName/g
s/with an Instruction/to an Instruction/g
s/RegisterMDKind/registerMDKind/g

llvm-svn: 84689
2009-10-20 22:50:27 +00:00
Daniel Dunbar a470eac6a1 Fix -Asserts warning.
llvm-svn: 84687
2009-10-20 22:10:05 +00:00
Anton Korobeynikov a6faf60831 Fix invalid for vector types fneg(bitconvert(x)) => bitconvert(x ^ sign)
transform.

llvm-svn: 84683
2009-10-20 21:37:45 +00:00
Lang Hames 16edcd724a Oops. Backing out 84681 - needs to wait for the indexing patch.
llvm-svn: 84682
2009-10-20 21:28:22 +00:00
Lang Hames d8938d1ca8 Added some debugging output to pre-alloc splitting.
llvm-svn: 84681
2009-10-20 21:25:13 +00:00
Chris Lattner 0f15e03c5a add a real testcase for PR4313
llvm-svn: 84676
2009-10-20 21:04:26 +00:00
Chris Lattner 582d056b14 add a test similar to that needed for PR4313, but that doesn't
fail without the patch.

llvm-svn: 84675
2009-10-20 21:00:47 +00:00
Chris Lattner 8468c8e857 the date on this testcase is wrong, it is unreduced, and it passes without the fix for PR4313.
llvm-svn: 84674
2009-10-20 20:57:58 +00:00
Dan Gohman 83f5c835ff Fix another place that calls Loop::contains a lot to construct a sorted
container of the blocks and do efficient lookups. This makes
isLoopSimplifyForm much faster on large loops, fixing a significant
compile-time issue in builds with assertions enabled.

llvm-svn: 84673
2009-10-20 20:41:13 +00:00
Chris Lattner c702b6ab37 merge and filecheckize
llvm-svn: 84672
2009-10-20 20:39:43 +00:00
Chris Lattner 591d4da790 merge two tests and convert to filecheck.
llvm-svn: 84671
2009-10-20 20:33:46 +00:00
Jim Grosbach cccf5084a3 Disable by default while debugging
llvm-svn: 84669
2009-10-20 20:31:31 +00:00
Chris Lattner 7f903681ac alternate fix for PR5258 which avoids worklist problems, with reduced testcase.
llvm-svn: 84667
2009-10-20 20:27:49 +00:00
Jim Grosbach f3a2b6499e add cmd line opt to disable frame index reuse for ARM and T2. debug aid.
llvm-svn: 84664
2009-10-20 20:19:50 +00:00
Dan Gohman b6b8ec769c Restore LoopUnswitch's block-oriented threshold. LoopUnswitch now checks both
the estimated code size and the number of blocks when deciding whether to
do a non-trivial unswitch. This protects it from some very undesirable
worst-case behavior on large numbers of loop-unswitchable conditions, such
as in the testcase in PR5259.

llvm-svn: 84661
2009-10-20 20:06:09 +00:00
David Goodwin baf6dd26ea Checkpoint more aggressive anti-dependency breaking for post-ra scheduler.
llvm-svn: 84658
2009-10-20 19:54:44 +00:00
Jim Grosbach d2ba321930 Better handle instructions that re-def a scratch register
llvm-svn: 84657
2009-10-20 19:52:35 +00:00
Dan Gohman 3d9d78463c Following r84485, add Defs = [EFLAGS] to the 32-bit lock instructions too.
llvm-svn: 84652
2009-10-20 18:14:49 +00:00
Jeffrey Yasskin 27c669242a Move the Function*->allocated blocks map from the JITMemoryManager to the
JITEmitter.

I'm gradually making Functions auto-remove themselves from the JIT when they're
destroyed. In this case, the Function needs to be removed from the JITEmitter,
but the map recording which Functions need to be removed lived behind the
JITMemoryManager interface, which made things difficult.

This patch replaces the deallocateMemForFunction(Function*) method with a pair
of methods deallocateFunctionBody(void *) and deallocateExceptionTable(void *)
corresponding to the two startFoo/endFoo pairs.

llvm-svn: 84651
2009-10-20 18:13:21 +00:00
Jim Grosbach 5f2581a37a Register re-use for scavenged frame indices must check for re-deginition
of the register in the instruction which kills the scavenged value.

llvm-svn: 84641
2009-10-20 16:33:57 +00:00
Dan Gohman 4a43e3068d Make TranslateX86CC return COND_INVALID instead of aborting when it
encounters an OEQ or UNE comparison, and update its callers to check
for this return status and recover. This fixes a problem resulting from
the LowerOperation hooks being called from LegalizeVectorOps, because
LegalizeVectorOps only lowers vectors, so OEQ and UNE comparisons may
still be at large. This fixes PR5092.

llvm-svn: 84640
2009-10-20 16:22:37 +00:00