Commit Graph

33599 Commits

Author SHA1 Message Date
Chris Lattner d8bdf53335 rename function to avoid llvm-upgrade warning
llvm-svn: 39895
2007-07-16 04:09:00 +00:00
Nick Lewycky b7c0c8a350 Start adding and cleaning up comments.
llvm-svn: 39894
2007-07-16 02:58:37 +00:00
Nick Lewycky 5246026c8c Handle decrementing loops properly. Fixes PR1533.
Always pass the constant as the second parameter to HowManyLessThans.

Remove obsolete "isSigned" parameter.

llvm-svn: 39893
2007-07-16 02:08:00 +00:00
Chris Lattner 0f0adc6b9d add a helper method.
llvm-svn: 39885
2007-07-15 23:32:03 +00:00
Chris Lattner ec6480e235 new testcase
llvm-svn: 39882
2007-07-15 22:30:34 +00:00
Chris Lattner d4fef8dbca Implement shift-simplify.ll:test[45].
First teach instcombine that sign bit checks only demand the 
sign bit, this allows simplify demanded bits to hack on 
expressions better.

Second, teach instcombine that ashr is useless if only the
sign bit is demanded.

llvm-svn: 39880
2007-07-15 20:54:51 +00:00
Chris Lattner 06205d5567 Implement shift-simplify.ll:test3, turning:
(X << 31) <s 0  --> (X&1) != 0

This happens dozens of times in the CFE.

llvm-svn: 39879
2007-07-15 20:42:37 +00:00
Nick Lewycky ddc2f9ba57 Clarify the language. Pointed out by Duncan Sands.
llvm-svn: 39857
2007-07-14 17:41:03 +00:00
Nick Lewycky d20f485866 Fix the build. Patch from Holger Schurig.
llvm-svn: 39856
2007-07-14 15:11:14 +00:00
Anton Korobeynikov 383a324735 Long live the exception handling!
This patch fills the last necessary bits to enable exceptions
handling in LLVM. Currently only on x86-32/linux.

In fact, this patch adds necessary intrinsics (and their lowering) which
represent really weird target-specific gcc builtins used inside unwinder.

After corresponding llvm-gcc patch will land (easy) exceptions should be
more or less workable. However, exceptions handling support should not be 
thought as 'finished': I expect many small and not so small glitches
everywhere.

llvm-svn: 39855
2007-07-14 14:06:15 +00:00
Nick Lewycky 39519f5c41 Use maximal intersection algorithm exclusively. Fixes miscompile bug.
llvm-svn: 39852
2007-07-14 04:28:04 +00:00
Nick Lewycky 61b4a265ee Add alternate ConstantRange intersection algorithm.
llvm-svn: 39851
2007-07-14 02:51:34 +00:00
Evan Cheng 07bc082891 Added test case from PR1540.
llvm-svn: 39845
2007-07-13 23:57:33 +00:00
Devang Patel 4cd1413f15 Make LCSSA a loop pass.
llvm-svn: 39844
2007-07-13 23:57:11 +00:00
Evan Cheng 1fae1cd3e1 Fix for PR1540: Specify F0, F1 are sub-registers of D0, etc.
llvm-svn: 39843
2007-07-13 23:55:50 +00:00
Owen Anderson d975efab16 Handle GEPs with all-zero indices in the same way we handle pointer-pointer bitcasts. Also, fix a potentia infinite loop.
This brings FastDSE to parity with old DSE on 175.vpr.

llvm-svn: 39839
2007-07-13 22:50:48 +00:00
Devang Patel 29ccf8ba52 Disable claims to preserve analysis until open issues are resolved.
llvm-svn: 39834
2007-07-13 21:53:42 +00:00
Dan Gohman 10835d9c67 Eliminate an unused parameter.
llvm-svn: 39828
2007-07-13 20:16:50 +00:00
Dan Gohman ff72788863 Fix the comment for LegalizeOp to more accurately reflect what it does.
llvm-svn: 39827
2007-07-13 20:14:11 +00:00
Chris Lattner 0946f04236 remove obsolete note
llvm-svn: 39825
2007-07-13 20:08:19 +00:00
Dan Gohman 80f9f077e3 Don't call SimplifyVBinOp for non-vector operations, following earlier review
feedback. This theoretically makes the common (scalar) case more efficient.

llvm-svn: 39823
2007-07-13 20:03:40 +00:00
Chris Lattner 0a2d099792 fix some bugs in the manual
llvm-svn: 39822
2007-07-13 20:01:46 +00:00
Owen Anderson 9c9ef21432 Be more aggressive in removing dead stores, and in removing instructions trivially dead after DSE.
This drastically improves the effect of FastDSE on kimwitu++.

llvm-svn: 39819
2007-07-13 18:26:26 +00:00
Dale Johannesen 4dc35dbd3e Modify previous patch per review comments.
llvm-svn: 39817
2007-07-13 17:31:29 +00:00
Dale Johannesen 2182f06f2d Skeleton of post-RA scheduler; doesn't do anything yet.
Change name of -sched option and DEBUG_TYPE to
pre-RA-sched; adjust testcases.

llvm-svn: 39816
2007-07-13 17:13:54 +00:00
Chris Lattner 2b4d9b684f Fix CodeGen/Generic/print-arith-fp.ll on sparc (PR1551)
llvm-svn: 39813
2007-07-13 16:24:10 +00:00
Gabor Greif 42d12da712 these tests do not need a triple on Solaris. Thanks sabre!
llvm-svn: 39803
2007-07-13 10:08:18 +00:00
Reid Spencer df523644c9 Regenerate to pick up Gabor's changes.
llvm-svn: 39802
2007-07-13 10:05:30 +00:00
Gabor Greif f307d942ec * llvm.spec.in: update blurb
* autoconf/AutoRegen.sh: use variables for autofoo versions
* autoconf/configure.ac: test for some more functions
                         that are not guaranteed on solaris

Note: the svn:mime-type of autoconf/AutoRegen.sh
      should be set to something that allows for
			text compares using svn diff
llvm-svn: 39800
2007-07-13 09:48:29 +00:00
Owen Anderson 32c4a05dd4 Reimplement removing stores to allocas at the end of a function. This should be safe now.
llvm-svn: 39790
2007-07-12 21:41:30 +00:00
Owen Anderson d4451dee1e Make the condition-checking for free with non-trivial dependencies more correct.
llvm-svn: 39789
2007-07-12 18:08:51 +00:00
Owen Anderson 5e06995b3d Remove the end-block handling code. It was unsafe, and making it safe would have resulted in falling back to the slow DSE case. I need to think some more about the right way to handle this.
llvm-svn: 39788
2007-07-12 17:52:20 +00:00
Dale Johannesen 85ee72f7ba ARM: make branch folder remove unconditional branches
following jump tables that it earlier inserted.  This
would be OK on other targets but is needed for correctness
only on ARM (constant islands needs to find jump tables).

llvm-svn: 39782
2007-07-12 16:45:35 +00:00
Duncan Sands 0263dd1d7f The type ids making up a filter are unsigned, and
should be output as unsigned values.  Checked against
gcc.

llvm-svn: 39775
2007-07-12 13:51:39 +00:00
Gabor Greif b8bca52c7d checked in as obvious,
thanks Benoit Boissinot!

llvm-svn: 39774
2007-07-12 13:31:38 +00:00
Gabor Greif 1ef777cbb4 fix the remaining 3 testcases that missed a target triple
llvm-svn: 39773
2007-07-12 13:21:08 +00:00
Chris Lattner bdc69595d9 another missed SSE optimization
llvm-svn: 39772
2007-07-12 06:31:38 +00:00
Owen Anderson 1e1bace52b Let MemoryDependenceAnalysis take care of updating AliasAnalysis.
llvm-svn: 39769
2007-07-12 00:06:21 +00:00
Devang Patel 52c2dd4699 New test.
llvm-svn: 39768
2007-07-11 23:54:25 +00:00
Devang Patel fac4d1f014 Preserve analysis info.
llvm-svn: 39767
2007-07-11 23:47:28 +00:00
David Greene b2e2be4b6d Get rid of annoying spaces.
llvm-svn: 39766
2007-07-11 23:44:08 +00:00
Bruno Cardoso Lopes bcda5e20c9 Added support for Mips specific GAS directives
Fixed print immediate 
Fixed Identation on MipsISelDAGToDAG.cpp

llvm-svn: 39764
2007-07-11 23:24:41 +00:00
Bruno Cardoso Lopes 6c8c748e4d Added support for framepointer
Prologue/Epilogue support fp,ra save/restore and use the stack frame the right
way!

llvm-svn: 39763
2007-07-11 23:21:31 +00:00
Owen Anderson aa07172340 Handle the case where an entire structure is freed, and its dependency is a store to a field within
that structure.

Also, refactor the runOnBasicBlock() function, splitting some of the special cases into separate functions.

llvm-svn: 39762
2007-07-11 23:19:17 +00:00
Bruno Cardoso Lopes 77dbdcabf2 Now that stack is represented the right way, LOA starts at 0
llvm-svn: 39761
2007-07-11 23:17:41 +00:00
Bruno Cardoso Lopes 4449e5dd7f Fixed AddLiveOut issues
FI's created the write way to represent Mips stack

llvm-svn: 39760
2007-07-11 23:16:16 +00:00
Bruno Cardoso Lopes c5affeccbd Removed unused immediate PatLeaf, fixed lui instruction
llvm-svn: 39759
2007-07-11 22:47:02 +00:00
Bruno Cardoso Lopes 753e37027f Added MipsMachineFunction class, to hold Mips dinamic stack info when inserting Prologue/Epilog
llvm-svn: 39758
2007-07-11 22:44:21 +00:00
Owen Anderson 1441470be8 Add support for eliminate stores to stack-allocated memory locations at the end
of a function.

llvm-svn: 39754
2007-07-11 21:06:56 +00:00
Owen Anderson e720144837 Handle eliminating stores that occur right before a free.
llvm-svn: 39753
2007-07-11 20:38:34 +00:00
Lauro Ramos Venancio 3d70855dd2 Handle packed structs in the CBackend.
llvm-svn: 39752
2007-07-11 19:56:53 +00:00
Anton Korobeynikov d9625399fb Emit correct linkage. Patch by Roman Samoilov.
llvm-svn: 39751
2007-07-11 19:51:06 +00:00
Evan Cheng ade8183fe8 Add test case for PR1545.
llvm-svn: 39749
2007-07-11 19:29:05 +00:00
Evan Cheng 6b6d1f685f Missed a couple of places where new instructions are added due to spill / restore.
llvm-svn: 39748
2007-07-11 19:17:18 +00:00
Owen Anderson bf971aafb6 Clean up a few things based on Chris' feedback.
llvm-svn: 39747
2007-07-11 19:03:09 +00:00
Tanya Lattner ccecbcd779 Adding ability to demote phi to stack.
llvm-svn: 39744
2007-07-11 18:41:34 +00:00
Dale Johannesen e59411d056 Fix hang compiling TimberWolf (allow for islands
of size other than 4).

llvm-svn: 39743
2007-07-11 18:32:38 +00:00
Lauro Ramos Venancio 09d73c0305 Assert when TLS is not implemented.
llvm-svn: 39737
2007-07-11 17:19:51 +00:00
Duncan Sands 03b274911f Exception handling has been implemented.
llvm-svn: 39732
2007-07-11 16:59:20 +00:00
Chris Lattner 6e544a9cca Fix an oversight: for modules with no other identifying target info,
the sparc backend should be preferred when running on sparcs.

llvm-svn: 39142
2007-07-11 16:32:10 +00:00
Duncan Sands d5ea194b6c If assertions are not enabled, we should return False here.
llvm-svn: 38535
2007-07-11 08:47:55 +00:00
Evan Cheng 74a541024f No longer need to track last def / use.
llvm-svn: 38534
2007-07-11 08:47:44 +00:00
Evan Cheng bec7a20c5e Fix for PR1545: Revamp code that update kill information due to register reuse.
llvm-svn: 38525
2007-07-11 05:28:39 +00:00
Reid Spencer ef1eeb3c93 Adjust this per the changes to the configuration script in the llvm-top module.
llvm-svn: 38521
2007-07-11 03:00:11 +00:00
Owen Anderson 5e72db3f7f Add FastDSE, a new algorithm for doing dead store elimination. This algorithm is not as accurate
as the current DSE, but it only a linear scan over each block, rather than quadratic.  Eventually
(once it has been improved somewhat), this will replace the current DSE.

NOTE: This has not yet been extensively tested.
llvm-svn: 38517
2007-07-11 00:46:18 +00:00
David Greene d9034f717a Make this work with GLIBCXX_DEBUG.
llvm-svn: 38516
2007-07-10 22:00:30 +00:00
Evan Cheng 94579dbd2e Didn't mean the last commit. Revert.
llvm-svn: 38515
2007-07-10 22:00:16 +00:00
Dale Johannesen 68471d263f Fix fp_constant_op failure.
llvm-svn: 38514
2007-07-10 21:53:30 +00:00
Evan Cheng effa7467b6 Update.
llvm-svn: 38513
2007-07-10 21:49:47 +00:00
Dale Johannesen 23f631d87c fix 80 columnn violations, increasing the world's
pedantic satisfaction level.

llvm-svn: 38512
2007-07-10 20:53:41 +00:00
Owen Anderson c432490b4c Calculate the size of a array allocation correctly.
llvm-svn: 38511
2007-07-10 20:48:38 +00:00
Owen Anderson faf9e42479 Fix a crasher when finding the dependency of a call.
llvm-svn: 38510
2007-07-10 20:39:07 +00:00
Owen Anderson 1279eaf776 Make this pass registration static as well.
llvm-svn: 38509
2007-07-10 20:21:08 +00:00
Owen Anderson 084d3c2e2f Make the pass registration static.
llvm-svn: 38508
2007-07-10 20:20:19 +00:00
Chris Lattner f51bd666d9 add a note
llvm-svn: 38507
2007-07-10 20:03:50 +00:00
Rafael Espindola 9521a564fb check for correct usage of the byval attribute
llvm-svn: 38506
2007-07-10 19:28:12 +00:00
Anton Korobeynikov 76547349c1 During module cloning copy aliases too. This fixes PR1544
llvm-svn: 38505
2007-07-10 19:07:35 +00:00
Owen Anderson 1fa6132e85 Handle vaarg instructions correctly.
llvm-svn: 38504
2007-07-10 18:43:15 +00:00
Dan Gohman 60d6f96da3 Change the peep for EXTRACT_VECTOR_ELT of BUILD_PAIR to look for
the new CONCAT_VECTORS node type instead, as that's what legalize
uses now. And add a peep for EXTRACT_VECTOR_ELT of INSERT_VECTOR_ELT.

llvm-svn: 38503
2007-07-10 18:20:44 +00:00
Owen Anderson 94a21dd1e0 Volatile loads and stores depend on each other.
llvm-svn: 38502
2007-07-10 18:11:42 +00:00
Evan Cheng 9d41b311fb Remove clobbersPred. Add an OptionalDefOperand to instructions which have the 's' bit.
llvm-svn: 38501
2007-07-10 18:08:01 +00:00
Evan Cheng 0867337075 Remove clobbersPred.
llvm-svn: 38500
2007-07-10 18:07:08 +00:00
Evan Cheng ff025e4fc9 Add OptionalDefOperand. Remove clobbersPred. Also add DefinesPredicate to be used by if-converter.
llvm-svn: 38499
2007-07-10 18:06:29 +00:00
Evan Cheng 6e3c705d74 Try committing again. Add OptionalDefOperand. Remove clobbersPred.
llvm-svn: 38498
2007-07-10 18:05:01 +00:00
Owen Anderson 9c88457abe Add support for finding the dependencies of call and invoke instructions.
llvm-svn: 38497
2007-07-10 17:59:22 +00:00
Evan Cheng 5e9084207f If the operand is marked M_OPTIONAL_DEF_OPERAND, then it's a def.
llvm-svn: 38496
2007-07-10 17:52:20 +00:00
Evan Cheng fbc73099dc Somehow this wasn't committed last time. M_CLOBBERS_PRED is gone.
llvm-svn: 38495
2007-07-10 17:50:43 +00:00
Owen Anderson 2552a12e65 Fix the build, and fix the handling of pointer sizes.
llvm-svn: 38494
2007-07-10 17:25:03 +00:00
Owen Anderson 47352db672 Fix a bunch of things from Chris' feedback
llvm-svn: 38493
2007-07-10 17:08:11 +00:00
Dan Gohman 4bd45b3d53 Add a regression test for folding spill code into scalar min and max.
llvm-svn: 38492
2007-07-10 15:34:29 +00:00
Dan Gohman adb3d37c07 Fix a bug in the folding of binary operators to undef.
Thanks to Lauro for spotting this!

llvm-svn: 38491
2007-07-10 15:19:29 +00:00
Reid Spencer bca0811462 Make sure to keep symbols for profile build.
Patch by Benoit Boissinot. Thanks, Benoit!

llvm-svn: 38490
2007-07-10 14:52:01 +00:00
Dan Gohman fa91282dbf Fix the folding of undef in several binary operators to recognize
undef in either the left or right operand.

llvm-svn: 38489
2007-07-10 14:20:37 +00:00
Reid Spencer 0818f7dbf9 Simplify the handling of the --*flags options. The makefile already gets it
right so there is no need to duplicate logic, just use the values the makefile
provides. 

Eliminate some redundnt -D options from the output.

Fix the help output so it fits on 80 cols.

llvm-svn: 38488
2007-07-10 07:48:09 +00:00
Reid Spencer 1da59dd6dd Makesure the -cppflags also uses the CPP.BaseFlags as the CPP.Defines only
contains some of the defines but not all CPP flags.

llvm-svn: 38487
2007-07-10 07:21:34 +00:00
Reid Spencer fd8e641c1e Make sure that preprocessor symbols like _DEBUG, NDEBUG, and _GLIBC_DEBUG are
put into the CPP.Defines variable. Seems the convention was corrupted with
various changes made. It is important to get command line parameters into the
right variable because things like llvm-config and sub-makefiles depend on it.

llvm-svn: 38486
2007-07-10 07:19:53 +00:00
Evan Cheng ff6f279adf When a node value is only used by a CopyToReg, use the user's dest. This should not be restricted to nodes that produce only a single value.
llvm-svn: 38485
2007-07-10 07:08:32 +00:00
Evan Cheng 32aad49b24 Move DenseMapKeyInfo<SDOperand> from LegalizeDAG.cpp to SelectionDAGNodes.h
llvm-svn: 38484
2007-07-10 06:59:55 +00:00
Nick Lewycky e635cc43c6 Update the ValueRanges interface to use value numbers instead of Value*s.
llvm-svn: 38483
2007-07-10 03:28:21 +00:00
Owen Anderson 7ff09810a8 Evidently my earlier fix did not go far enough. When resizing a zero-sized
BitVector, make sure to set or clear ALL of the bits.

llvm-svn: 38481
2007-07-10 02:01:16 +00:00
Owen Anderson 4c4b238448 Move some key maps from std::map to DenseMap. This improves the time to optimize Anton's testcase from 17.5s
to 15.7s.

llvm-svn: 38480
2007-07-10 00:27:22 +00:00
Owen Anderson 41c2cab873 Use a cheaper test, delaying calling find_leader() until we know that it's necessary. This improves
the time to optimize Anton's testcase from 21.1s to 17.6s.

llvm-svn: 38479
2007-07-10 00:09:25 +00:00
Dan Gohman 57111e7a60 Define non-intrinsic instructions for vector min, max, sqrt, rsqrt, and rcp,
in addition to the intrinsic forms. Add spill-folding entries for these new
instructions, and for the scalar min and max instrinsic instructions which
were missing. And add some preliminary ISelLowering code for using the new
non-intrinsic vector sqrt instruction, and fneg and fabs.

llvm-svn: 38478
2007-07-10 00:05:58 +00:00
Owen Anderson 7ee197ecf2 Add an assertion if find_leader fails.
llvm-svn: 38477
2007-07-09 23:57:18 +00:00
Owen Anderson c3bd1db42d When resizing a BitVector with size 0, be sure to clear the low word before using it.
llvm-svn: 38476
2007-07-09 23:39:39 +00:00
Owen Anderson effc7a7d16 Take advantage of the new fast SmallPtrSet assignment operator when propagating AVAIL_OUT sets.
This reduces the time to optimize Anton's testcase from 31.2s to 21.s!

llvm-svn: 38475
2007-07-09 22:29:50 +00:00
Owen Anderson e33356b18e Make the assignment operator for SmallPtrSet much faster for normal cases.
llvm-svn: 38474
2007-07-09 22:27:20 +00:00
Dan Gohman 2af3063337 Preserve volatililty and alignment information when lowering or
simplifying loads and stores.

llvm-svn: 38473
2007-07-09 22:18:38 +00:00
Devang Patel e8ec7661ea Expose struct size threhold to allow users to tweak their own setting.
llvm-svn: 38472
2007-07-09 21:19:23 +00:00
Dan Gohman f8f531bf69 Change getCopyToParts and getCopyFromParts to always use target-endian
register ordering, for both physical and virtual registers. Update the PPC
target lowering for calls to expect registers for the call result to
already be in target order.

llvm-svn: 38471
2007-07-09 20:59:04 +00:00
Owen Anderson 3364abbb36 Make the assignment operator for SmallPtrSet return a reference, and fix a long-standing bug in the copy
ctor while I'm at it.

Thanks to Chris Lattner for help with this patch.

llvm-svn: 38470
2007-07-09 20:59:01 +00:00
Devang Patel 94d0fbe1a6 Fix memory leak.
llvm-svn: 38469
2007-07-09 20:52:39 +00:00
Dan Gohman 6decfbf133 Initialize the IndexedModeActions array with memset before
updating it with calls to setIndexedLoadAction/setIndexedStoreAction,
which only update a few bits at a time. This avoids ostensible
undefined behavior of operationg on values which may be
trap-representations, and as a practical matter fixes errors from
valgrind, which doesn't track uninitialized memory with bit
granularity.

llvm-svn: 38468
2007-07-09 20:49:44 +00:00
Owen Anderson aee901745d Fix an error in the assignment operator that was causing an infinite loop in GVNPRE.cpp.
Patch by Chis Lattner.

llvm-svn: 38467
2007-07-09 18:51:15 +00:00
Chris Lattner 318ff8dd94 force a cpu without SSE
llvm-svn: 38466
2007-07-09 17:35:18 +00:00
Chris Lattner 0937478073 allow this to work on ppc-darwin
llvm-svn: 38465
2007-07-09 17:32:28 +00:00
Chris Lattner 0e623de40d remove this bogus t-t
llvm-svn: 38464
2007-07-09 17:31:07 +00:00
Chris Lattner 517290ae52 The various "getModuleMatchQuality" implementations should return
zero if they see a target triple they don't understand.

llvm-svn: 38463
2007-07-09 17:25:29 +00:00
Chris Lattner 6fec9a91b7 add target triple to fix PR1546
llvm-svn: 38462
2007-07-09 17:14:58 +00:00
Chris Lattner a11b2c74f2 work around an aparent gcc name resolution bug by
detemplatizing this.

llvm-svn: 38461
2007-07-09 17:11:53 +00:00
Chris Lattner 85049a470e implement operator= for smallptrset
llvm-svn: 38460
2007-07-09 16:54:03 +00:00
Owen Anderson 56b01eb3d9 Fix a comment.
llvm-svn: 38459
2007-07-09 16:43:55 +00:00
Chris Lattner 6caf8fdd04 Fix this warning:
DAGCombiner.cpp: In member function 'llvm::SDOperand<unnamed>::DAGCombiner::visitOR(llvm::SDNode*)':
DAGCombiner.cpp:1608: warning: passing negative value '-0x00000000000000001' for argument 1 to 'llvm::SDOperand llvm::SelectionDAG::getConstant(uint64_t, llvm::MVT::ValueType, bool)'

oiy.

llvm-svn: 38458
2007-07-09 16:16:34 +00:00
Dan Gohman 0a76e7f678 Move the APInt form of SCEVUnknown::getIntegerSCEV to SCEVConstant::get, and
use SCEVConstant::get instead of SCEVUnknown::get when constructing a SCEV
for a ConstantInt.

llvm-svn: 38457
2007-07-09 15:25:17 +00:00
Dan Gohman 8e0b6099b9 Fix a typo in a comment.
llvm-svn: 38456
2007-07-09 15:15:24 +00:00
Dan Gohman 5740239998 Add explicit triples to these tests so that llc behaves as expected on
non-Apple hosts.

llvm-svn: 38455
2007-07-09 13:42:32 +00:00
Gabor Greif 949ac3a930 missed this one
llvm-svn: 38454
2007-07-09 12:20:30 +00:00
Gabor Greif ef3d8362a3 fix typos
llvm-svn: 38453
2007-07-09 12:00:59 +00:00
Gabor Greif 6c0bda829e eliminated all references to 'bytecode' from .pod files
llvm-svn: 38452
2007-07-09 11:24:05 +00:00
Reid Spencer 617f5fbf74 Remove the cvsupdate script. Its no longer useful in the face of
tools such as svn info and svn status.

llvm-svn: 38446
2007-07-09 08:31:14 +00:00
Reid Spencer 5613721c96 Regenerate.
llvm-svn: 38444
2007-07-09 08:10:07 +00:00
Reid Spencer e18131afd4 cvs -> svn
llvm-svn: 38443
2007-07-09 08:09:21 +00:00
Reid Spencer c7f87f202e Subversionify the documentation.
llvm-svn: 38442
2007-07-09 08:04:31 +00:00
Owen Anderson 267ba45249 Improve a hotspot that was making build_sets() slower by calling lookup() too
often.  This improves Anton's testcase from 36s to 32s.

llvm-svn: 38441
2007-07-09 07:56:55 +00:00
Reid Spencer b936bc2067 Subversionify the script.
llvm-svn: 38440
2007-07-09 07:41:11 +00:00
Owen Anderson 1c83b5d999 Start using a set representation that remembers the set of value numbers represented
in the set.  For the moment, this results in a slight performance decrease, but
it lays the groundwork for future improvements.

llvm-svn: 38439
2007-07-09 06:50:06 +00:00
Reid Spencer 74119e0e7e Bytecode -> Bitcode
llvm-svn: 38438
2007-07-09 06:45:18 +00:00
Reid Spencer 75efe6cc57 Minor language change upgrader -> upgrade tool
llvm-svn: 38437
2007-07-09 06:42:22 +00:00
Reid Spencer e14b7339e6 This dir does not appear under /docs anymore but under /cmds so use an
absolute path to the llvm.css file.

llvm-svn: 38436
2007-07-09 06:32:55 +00:00
Reid Spencer bb7dc1ed8b Links for commands are now generated into /cmds/ URL.
llvm-svn: 38435
2007-07-09 06:31:51 +00:00
Reid Spencer 15053aaed6 Fix some minor typos.
llvm-svn: 38434
2007-07-09 06:14:11 +00:00
Reid Spencer 69c94d2da4 Fix some typos.
llvm-svn: 38433
2007-07-09 06:06:45 +00:00
Reid Spencer b66b30577e Fix a typo.
llvm-svn: 38432
2007-07-09 06:01:20 +00:00
Reid Spencer af548d0ed2 Fix a typo.
llvm-svn: 38431
2007-07-09 05:58:08 +00:00
Reid Spencer 2cf6fe9ea2 Fix some minor typos, again to test the auto-update of the web site.
llvm-svn: 38430
2007-07-09 05:52:49 +00:00
Reid Spencer dfa6ee7ca7 Remove an unneeded space, mostly to verify that auto-update of the
documentation is working.

llvm-svn: 38429
2007-07-09 05:33:45 +00:00
Reid Spencer 64a2622682 Install things needed by llvm-top to allow successful building
of llvm from that level.

llvm-svn: 38423
2007-07-08 03:50:22 +00:00
Reid Spencer bbe14ea99f LLVM needs ModuleInfo.txt as well.
llvm-svn: 38422
2007-07-08 00:59:00 +00:00
Owen Anderson 8b99e0ab20 Fix an error where ANTIC_OUT was ending up with more than one expression of
the same value number.  This fixes an infinite loop on 444.namd.

llvm-svn: 37967
2007-07-07 20:13:57 +00:00
Nick Lewycky 9b2252c6f0 Back out Devang's fix for PR1320 because it causes PR1542.
llvm-svn: 37966
2007-07-07 16:23:34 +00:00
Evan Cheng 881248c4e1 No need for ccop anymore.
llvm-svn: 37965
2007-07-06 23:34:09 +00:00
Evan Cheng 96c1457bff Teach if-conversion about instructions that were already predicated, e.g. conditional move.
llvm-svn: 37964
2007-07-06 23:24:39 +00:00
Evan Cheng 9835db562f ImmutablePredicateOperand is no more.
llvm-svn: 37963
2007-07-06 23:23:38 +00:00
Evan Cheng 3650b2c278 Incorrect check.
llvm-svn: 37962
2007-07-06 23:23:19 +00:00
Evan Cheng 76a97c5f8a Do away with ImmutablePredicateOperand.
llvm-svn: 37961
2007-07-06 23:22:46 +00:00
Evan Cheng d771e05121 isUnpredicatedTerminator should treat conditional branches as unpredicated terminator.
llvm-svn: 37960
2007-07-06 23:22:03 +00:00
Evan Cheng b039c60889 Do away with ImmutablePredicateOperand.
llvm-svn: 37959
2007-07-06 23:21:02 +00:00
Owen Anderson c0daf5fe53 A first stab at memory dependence analysis. This is an interface on top of
alias analysis, adding caching and lazy computation of queries.  This will
be used in planned improvements to memory access optimizations.

llvm-svn: 37958
2007-07-06 23:14:35 +00:00
Owen Anderson 81f07478b4 Add some accessors to improve consistency.
llvm-svn: 37957
2007-07-06 23:13:31 +00:00
Gabor Greif a54634adef first pass of nomenclature changes in .html files
llvm-svn: 37956
2007-07-06 22:07:22 +00:00
Devang Patel 12358b4827 These rountines are now available as part of basic block utilities.
llvm-svn: 37955
2007-07-06 22:03:47 +00:00
Devang Patel 86d0ea973d Request DominanceFrontiner in advance.
llvm-svn: 37954
2007-07-06 21:43:22 +00:00
Devang Patel 3ee408264b Preserve various analysis info.
llvm-svn: 37953
2007-07-06 21:40:13 +00:00
Devang Patel d7767cc2a7 Add SplitEdge and SplitBlock utility routines.
llvm-svn: 37952
2007-07-06 21:39:20 +00:00
Owen Anderson 7d4bbc1c0c Be more aggressive in the heuristic. This mostly exposes more opportunities
for the GVN part of GVNPRE to apply.

llvm-svn: 37951
2007-07-06 20:29:43 +00:00
Gabor Greif 24027b584f finishing touches of bytecode -> bitcode changes. also unbreak Windows
llvm-svn: 37950
2007-07-06 20:28:40 +00:00
Owen Anderson 3c3dd902ec Achieve what the incorrect test was trying to do by simply requiring that all
critical edges be split before we begin.

llvm-svn: 37949
2007-07-06 18:12:36 +00:00
Owen Anderson bcdd7ec4c9 Remove an incorrect check.
llvm-svn: 37948
2007-07-06 16:52:47 +00:00
Duncan Sands 9d97420473 The exception handling intrinsics return values,
so must be lowered to a value, not nothing at all.
Subtle point: I made eh_selector return 0 and
eh_typeid_for return 1.  This means that only
cleanups (destructors) will be run as the exception
unwinds [if eh_typeid_for returned 0 then it would
be as if the first catch always matched, and the
corresponding handler would be run], which is
probably want you want in the CBE.

llvm-svn: 37947
2007-07-06 14:46:23 +00:00
Dan Gohman 71ed4aaa31 Remove redundant declarations.
llvm-svn: 37946
2007-07-06 13:59:28 +00:00
Gabor Greif 3d3fc3296e eliminate residual cruft related to recognizing bytecode
files.
bitcode files are the only LLVM format left.

llvm-svn: 37945
2007-07-06 13:38:17 +00:00
Dan Gohman fd404813e8 Fix a comment so that the element numbering match the actual element
operand numbering.

llvm-svn: 37944
2007-07-06 13:27:33 +00:00
Dan Gohman bab5355ff4 Add an explicit triple to the big-endian tests so that the assembly
output format is always consistent with what the greps are looking for.

llvm-svn: 37943
2007-07-06 13:15:51 +00:00
Duncan Sands c5b1984f57 Indexes into the list of filter ids cannot be output
directly: they need to be turned into byte offsets
(often the same, but may not be if there are many
type infos).

llvm-svn: 37942
2007-07-06 12:46:24 +00:00
Duncan Sands 6ddf75174a Test that byte offsets are used to index into the list
of filter ids, and not simply the id index.  Testing
this requires at least 128 type infos!

llvm-svn: 37941
2007-07-06 12:38:27 +00:00
Rafael Espindola b567e3ffb0 Add the byval attribute
llvm-svn: 37940
2007-07-06 10:57:03 +00:00
Gabor Greif 0e21980704 Solaris 2.x does not have RLIMIT_RSS, check for this symbol (analog NetBSD below), should subsume Cygwin
llvm-svn: 37939
2007-07-06 10:31:27 +00:00
Duncan Sands 003c0b1f90 Remove propagateEHRegister in favour of a more limited
fix, that is adequate while PR1508 remains unresolved.

llvm-svn: 37938
2007-07-06 09:18:59 +00:00
Duncan Sands 81df18a50a Remove ExtractGlobalVariable - use StripPointerCasts
instead.

llvm-svn: 37937
2007-07-06 09:10:03 +00:00
Zhou Sheng 1ee941dac4 Correct a typo.
llvm-svn: 37936
2007-07-06 06:01:16 +00:00
Evan Cheng fc7010d962 Workaround of getCopyToRegs and getCopyFromRegs bugs for big-endian machines.
llvm-svn: 37935
2007-07-06 01:47:35 +00:00
Evan Cheng 642be16bbf Change CalculateHeights and CalculateDepths to be non-recursive.
llvm-svn: 37934
2007-07-06 01:37:28 +00:00
Evan Cheng a7d41aad4f Refactor code to add initial support for OptionalDefOperand.
llvm-svn: 37933
2007-07-06 01:05:26 +00:00
Evan Cheng 0a42fdf346 Print the s bit if the instruction is toggled to its CPSR setting form.
llvm-svn: 37932
2007-07-06 01:01:34 +00:00
Evan Cheng 5c66888580 PredicateDefOperand -> OptionalDefOperand.
llvm-svn: 37931
2007-07-06 01:00:49 +00:00
Evan Cheng eaa82198c4 Add OptionalDefOperand to stand for optionally defined result.
llvm-svn: 37930
2007-07-06 01:00:16 +00:00
Owen Anderson 02e9698293 Fix a bunch of issues found in a testcase from 400.perlbench.
llvm-svn: 37929
2007-07-05 23:11:26 +00:00
Evan Cheng da784693c3 Fix test.
llvm-svn: 37928
2007-07-05 23:00:50 +00:00
Chris Lattner feba62c719 avoid ambiguity in target selection
llvm-svn: 37927
2007-07-05 22:16:19 +00:00
Evan Cheng 9546a5c7de Initial ARM JIT support by Raul Fernandes Herbster.
llvm-svn: 37926
2007-07-05 21:15:40 +00:00
Dan Gohman 929624f461 Add explicit keywords.
llvm-svn: 37925
2007-07-05 20:40:15 +00:00
Dan Gohman 83b095df36 Make MachineFunctionPass::runOnFunction non-virtual. Subclasses override
the virtual function runOnMachineFunction instead. And add access specifiers.

llvm-svn: 37924
2007-07-05 20:39:35 +00:00
Anton Korobeynikov de9c825859 Proper flag __alloca call
llvm-svn: 37923
2007-07-05 20:36:08 +00:00
Dan Gohman a282694acf Make the debug string for ISD::MERGE_VALUES consistent with the others.
llvm-svn: 37922
2007-07-05 20:15:43 +00:00
Dan Gohman d258e80583 Add a parameter to getCopyToParts and getCopyFromParts to specify whether
endian swapping should be done, and update the code to use it. This fixes
some register ordering issues on big-endian systems, such as PowerPC,
introduced by the recent illegal by-val arguments changes.

llvm-svn: 37921
2007-07-05 20:12:34 +00:00
Chris Lattner fb0b269032 This enum is dead
llvm-svn: 37920
2007-07-05 17:28:01 +00:00
Chris Lattner 622178dfc1 update the .cvs files.
llvm-svn: 37919
2007-07-05 17:27:31 +00:00
Chris Lattner f997e37fbb update the .cvs files
llvm-svn: 37918
2007-07-05 17:26:49 +00:00
Evan Cheng cee44d3d1d Doh
llvm-svn: 37917
2007-07-05 17:21:33 +00:00
Chris Lattner de8c7b6981 remove a dead case
llvm-svn: 37916
2007-07-05 17:18:32 +00:00
Evan Cheng a6246f4346 Unbreak the build.
llvm-svn: 37915
2007-07-05 17:13:56 +00:00
Evan Cheng 085314b455 Unbreak the build.
llvm-svn: 37914
2007-07-05 17:13:19 +00:00
Gabor Greif e16561cd5d Here is the bulk of the sanitizing.
Almost all occurrences of "bytecode" in the sources have been eliminated.

llvm-svn: 37913
2007-07-05 17:07:56 +00:00
Dale Johannesen 5892cfd263 Record my recent work.
llvm-svn: 37912
2007-07-05 16:56:24 +00:00
Chris Lattner 6d1cf76c97 the arm backend is not building, temporarily disable it.
llvm-svn: 37911
2007-07-05 16:11:52 +00:00
Devang Patel f5a15dd9da Fix PR1539. Add LoopPassPrinter.
llvm-svn: 37909
2007-07-05 15:32:03 +00:00
Duncan Sands 4836e3a6f8 Make sure only one copy of a filter is placed in the
exception handling table if we encounter it multiple
times.  Filters could be folded harder than this, but
that would mean a lot more work for not much gain.

llvm-svn: 37908
2007-07-05 15:15:01 +00:00
Duncan Sands ed4f3743c2 Test commit.
llvm-svn: 37907
2007-07-05 10:32:33 +00:00
Reid Spencer a9c32e6b49 Add a note about llvm2cpp's dubious future.
llvm-svn: 37906
2007-07-05 10:12:19 +00:00
Reid Spencer 98f56b50d1 Get the version number right, finally.
llvm-svn: 37905
2007-07-05 10:00:19 +00:00
Evan Cheng ffabff11c0 Teach DAGISelEmitter about zero_reg.
llvm-svn: 37900
2007-07-05 07:19:45 +00:00
Evan Cheng e32e7fb40d Instructions with ImmutablePredicateOperand aren't really predicable since their predicates are fixed at isel time.
llvm-svn: 37899
2007-07-05 07:19:29 +00:00
Evan Cheng 94f04c6fc9 Reflects the chanegs made to PredicateOperand.
llvm-svn: 37898
2007-07-05 07:18:20 +00:00
Evan Cheng a7f77599a4 Added ARM::CPSR to represent ARM CPSR status register.
llvm-svn: 37897
2007-07-05 07:17:13 +00:00
Evan Cheng 7e90b11550 Unfortunately we now require C++ code to isel Bcc, conditional moves, etc.
llvm-svn: 37896
2007-07-05 07:15:27 +00:00
Evan Cheng aa3b8014bd Each ARM use predicate operand is now made up of two components. The new component is the CPSR register.
llvm-svn: 37895
2007-07-05 07:13:32 +00:00
Evan Cheng 49ffa1e488 Added ARM::CPSR to represent ARM CPSR status register.
llvm-svn: 37894
2007-07-05 07:11:03 +00:00
Evan Cheng ea4a82bcfb PPC conditional branch predicate does not change after isel.
llvm-svn: 37893
2007-07-05 07:09:50 +00:00
Evan Cheng 756d15ac6f - Added zero_reg def to stand for register 0.
- Added two variants of PredicateOperand: ImmutablePredicateOperand, whose predicate does not change after isel; PredicateDefOperand, which represent a predicate defintion operand.

llvm-svn: 37892
2007-07-05 07:09:09 +00:00
Evan Cheng 0721084327 Do not check isPredicated() on non-predicable instructions.
llvm-svn: 37891
2007-07-05 07:06:46 +00:00
Evan Cheng bb6ecf0067 Better assertion messages.
llvm-svn: 37890
2007-07-05 07:05:38 +00:00
Nick Lewycky 73dd692173 Break "variable canonicalization" out of InequalityGraph and into its own class
"ValueNumbering".

llvm-svn: 37881
2007-07-05 03:15:00 +00:00
Owen Anderson ca1a184fd8 Fix another bug, this time in PREing select instructions.
llvm-svn: 37878
2007-07-04 22:33:23 +00:00
Gabor Greif 0e535c3c8e Pretty straightforward replacement of "bytecode" by "bitcode"
performed on tools/ first, in order not to cause lethal damage

llvm-svn: 37877
2007-07-04 21:55:50 +00:00
Dale Johannesen 3d7008cd49 Refactor X87 instructions. As a side effect, all
their names are changed.

llvm-svn: 37876
2007-07-04 21:07:47 +00:00
Duncan Sands fe80638417 Extend eh.selector to support both catches and filters.
Drop the eh.filter intrinsic.

llvm-svn: 37875
2007-07-04 20:52:51 +00:00
Duncan Sands fda68e7b10 Nested try-catch-filter testcase.
llvm-svn: 37874
2007-07-04 20:48:48 +00:00
Chris Lattner 98c09a07ca Make the GSG actually work.
llvm-svn: 37872
2007-07-04 18:42:47 +00:00
Owen Anderson cd94fc982a Fix a typo that was killing GVNPRE of select instructions.
llvm-svn: 37871
2007-07-04 18:26:18 +00:00
Owen Anderson 664e260a9c Fix an error in phi translation of GEPs that was causing failures.
llvm-svn: 37868
2007-07-04 04:51:16 +00:00
Reid Spencer 540aa864ba Ignore the .svn directories so countloc.sh and llvmgrep won't traverse them.
llvm-svn: 37867
2007-07-04 01:35:32 +00:00
Bill Wendling 8590f920c7 Support generation of GR64 to MMX code in the JIT.
llvm-svn: 37866
2007-07-04 01:29:22 +00:00
Devang Patel 24f9e2cf98 Remove unused method - getIDomBlock().
llvm-svn: 37865
2007-07-04 01:11:19 +00:00
Devang Patel 67c27ceac7 Fix typo in assertion check.
llvm-svn: 37864
2007-07-04 01:05:22 +00:00
Bill Wendling 3053244b27 Allow a GR64 to be moved into an MMX register via the "movd" instruction.
Still need to have JIT generate this code.

llvm-svn: 37863
2007-07-04 00:19:54 +00:00
Owen Anderson 2e4b6feac2 Add support for performing GVNPRE on GEP instructions.
llvm-svn: 37862
2007-07-03 23:51:19 +00:00
Bill Wendling 9d1ff65719 Change the place where man pages are installed to ${prefix}/share/man1. This
puts them in a more standardized place.

llvm-svn: 37861
2007-07-03 23:04:11 +00:00
Owen Anderson b9a494aea3 Add functionality to value number GEP instructions. This also provides the infrastructure that will
be used for function calls.  NOTE: This does not yet do any transformation of GEPs or function calls.

llvm-svn: 37860
2007-07-03 22:50:56 +00:00
Anton Korobeynikov 12e21dc312 Test modified svn mailer
llvm-svn: 37859
2007-07-03 21:57:50 +00:00
Owen Anderson fc56043844 Remove BFtoLLVM. It was old, and a poor example because it didn't use best practices for making
a LLVM frontend in C++.  Maybe someday it will be rewritten..

llvm-svn: 37858
2007-07-03 21:36:47 +00:00
Owen Anderson 6b958c72bd Make the unary operator case a bit faster, since casts are the only kind of unary operation.
llvm-svn: 37857
2007-07-03 19:01:42 +00:00
Owen Anderson 59bd053fc5 Add support for performing GVNPRE on cast instructions, and add a testcase for this.
llvm-svn: 37856
2007-07-03 18:37:08 +00:00
Tanya Lattner 11f9d1b7ee We really should not have this version number in SO many makefiles. This should also probably change to svn instead of cvs, but leaving it for now.
llvm-svn: 37855
2007-07-03 18:11:20 +00:00
Anton Korobeynikov 510dfdaa0d Revert last change until issue reported by Owen, won't be fixed.
llvm-svn: 37854
2007-07-03 17:16:46 +00:00
Dale Johannesen c2a6089b8b Some spacing fixes. Cosmetic.
llvm-svn: 37853
2007-07-03 17:07:33 +00:00
Anton Korobeynikov 76f70dc838 Rename llvm-test => test-suite. By Dave Greene.
llvm-svn: 37852
2007-07-03 17:01:58 +00:00
Dan Gohman 06563a8702 Fix several over-aggressive folds for undef nodes in dagcombine, to
follow the rules for undef used in instcombine.

llvm-svn: 37851
2007-07-03 14:03:57 +00:00
Chris Lattner 4b32528ba9 note where to get steens-aa and ds-aa
llvm-svn: 37850
2007-07-03 04:41:50 +00:00
Owen Anderson 00e7e32abf Test commit.
llvm-svn: 37849
2007-07-03 02:28:17 +00:00
Dale Johannesen a8bf39ee31 New testcases for rev 37847 (PR's 1489 and 1505).
llvm-svn: 37848
2007-07-03 00:58:37 +00:00