oota-llvm.git
20 years agoPerhaps the last bugfix before the release? HOPEFULLY! :)
Chris Lattner [Fri, 19 Mar 2004 04:26:04 +0000 (04:26 +0000)]
Perhaps the last bugfix before the release?  HOPEFULLY!  :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12505 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix PR299: [Sparc] Code generator asserts on alloc of zero size type
Chris Lattner [Fri, 19 Mar 2004 04:21:43 +0000 (04:21 +0000)]
Fix PR299: [Sparc] Code generator asserts on alloc of zero size type

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12504 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMalloc doesn't kill a load. This patch need not go into 1.2 though.
Chris Lattner [Thu, 18 Mar 2004 17:01:26 +0000 (17:01 +0000)]
Malloc doesn't kill a load.  This patch need not go into 1.2 though.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12500 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a minor wording bug in the manual
Chris Lattner [Thu, 18 Mar 2004 14:58:55 +0000 (14:58 +0000)]
Fix a minor wording bug in the manual

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12496 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThis is the last remaining bug that I know of in the loop extractor. The loop
Chris Lattner [Thu, 18 Mar 2004 06:41:59 +0000 (06:41 +0000)]
This is the last remaining bug that I know of in the loop extractor.  The loop
extractor has extracted hundreds of loops from the SPEC benchmarks without crashing
and without misoptimizing the programs.

This testcase could be reduced substantially more by hand, but I don't have time
to work on it right now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12495 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a really nasty bug that was breaking ijpeg in LLC mode. We were incorrectly
Chris Lattner [Thu, 18 Mar 2004 06:29:54 +0000 (06:29 +0000)]
Fix a really nasty bug that was breaking ijpeg in LLC mode.  We were incorrectly
folding load instructions into other instructions across free instruction
boundaries.  Perhaps this will also fix the other strange failures?

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12494 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix bug: CodeExtractor/2004-03-17-MissedLiveIns.ll
Chris Lattner [Thu, 18 Mar 2004 05:56:32 +0000 (05:56 +0000)]
Fix bug: CodeExtractor/2004-03-17-MissedLiveIns.ll
With this fix we now successfully extract all 149 loops from 256.bzip2 without
crashing or miscompiling the program!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12493 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNew testcase, reduced from 256.bzip2
Chris Lattner [Thu, 18 Mar 2004 05:55:29 +0000 (05:55 +0000)]
New testcase, reduced from 256.bzip2

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12492 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd statistics to the loop extractor. The loop extractor has successfully
Chris Lattner [Thu, 18 Mar 2004 05:46:10 +0000 (05:46 +0000)]
Add statistics to the loop extractor.  The loop extractor has successfully
extracted all 63 loops for Olden/bh without crashing and without
miscompiling the program!!!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12491 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix problem with PHI nodes having multiple predecessors from different
Chris Lattner [Thu, 18 Mar 2004 05:43:18 +0000 (05:43 +0000)]
Fix problem with PHI nodes having multiple predecessors from different
exit nodes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12490 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix CodeExtractor/2004-03-17-UpdatePHIsOutsideRegion.ll
Chris Lattner [Thu, 18 Mar 2004 05:38:31 +0000 (05:38 +0000)]
Fix CodeExtractor/2004-03-17-UpdatePHIsOutsideRegion.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12489 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNew testcase
Chris Lattner [Thu, 18 Mar 2004 05:33:39 +0000 (05:33 +0000)]
New testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12488 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoSeriously simplify and correct the PHI node handling code.
Chris Lattner [Thu, 18 Mar 2004 05:28:49 +0000 (05:28 +0000)]
Seriously simplify and correct the PHI node handling code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12487 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix CodeExtractor/2004-03-17-OutputMismatch.ll
Chris Lattner [Thu, 18 Mar 2004 04:12:05 +0000 (04:12 +0000)]
Fix CodeExtractor/2004-03-17-OutputMismatch.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12486 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNew testcase that crashes the code extractor
Chris Lattner [Thu, 18 Mar 2004 04:10:02 +0000 (04:10 +0000)]
New testcase that crashes the code extractor

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12485 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix several bugs in the extractor:
Chris Lattner [Thu, 18 Mar 2004 03:49:40 +0000 (03:49 +0000)]
Fix several bugs in the extractor:
1. Names were not put on the new arguments created (ok, this just helps sanity :)
2. Fix outgoing pointer values
3. Do not insert stores for values that had not been computed
4. Fix some wierd problems with the outset calculation

This fixes CodeExtractor/2004-03-14-DominanceProblem.ll, making the extractor
work on at least one simple case!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12484 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThe code extractor needs dominator info. Provide it
Chris Lattner [Thu, 18 Mar 2004 03:48:06 +0000 (03:48 +0000)]
The code extractor needs dominator info.  Provide it

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12483 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThe code extractor needs dominator information, so we provide it.
Chris Lattner [Thu, 18 Mar 2004 03:47:46 +0000 (03:47 +0000)]
The code extractor needs dominator information, so we provide it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12482 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoPrune #includes, moving the module interface to the front. Note that this
Chris Lattner [Thu, 18 Mar 2004 03:15:29 +0000 (03:15 +0000)]
Prune #includes, moving the module interface to the front.  Note that this
exposed the fact that the header was not self-contained.  There is a reason
we do things :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12481 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMake this header file self-contained
Chris Lattner [Thu, 18 Mar 2004 03:14:56 +0000 (03:14 +0000)]
Make this header file self-contained

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12480 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a HORRIBLY NASTY bug that caused siod to stop working last night.
Chris Lattner [Wed, 17 Mar 2004 23:22:04 +0000 (23:22 +0000)]
Fix a HORRIBLY NASTY bug that caused siod to stop working last night.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12479 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a tag-o
Chris Lattner [Wed, 17 Mar 2004 21:33:32 +0000 (21:33 +0000)]
Fix a tag-o

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12477 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRewrite the second on AnalysisUsage usage. This documents the new
Chris Lattner [Wed, 17 Mar 2004 21:09:55 +0000 (21:09 +0000)]
Rewrite the second on AnalysisUsage usage.  This documents the new
addRequiredTransitive member that Misha added, and explains the whole
concept a lot better.  Also, the document used incorrect "subsubsection"
tags instead of "doc_subsubsection" which this fixes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12474 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoWhen loop extraction succeeds, make sure to map the function pointers over
Chris Lattner [Wed, 17 Mar 2004 17:42:09 +0000 (17:42 +0000)]
When loop extraction succeeds, make sure to map the function pointers over
to avoid dangling references.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12470 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix an inverted condition that causes us to think that loop extraction
Chris Lattner [Wed, 17 Mar 2004 17:37:18 +0000 (17:37 +0000)]
Fix an inverted condition that causes us to think that loop extraction
accomplished something when it really did not.  This does not fix the bigger problem tho.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12469 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix an iterator invalidation problem in a "buggy" pass
Chris Lattner [Wed, 17 Mar 2004 17:29:08 +0000 (17:29 +0000)]
Fix an iterator invalidation problem in a "buggy" pass

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12468 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoupdate release notes for 1.2
Chris Lattner [Wed, 17 Mar 2004 03:54:41 +0000 (03:54 +0000)]
update release notes for 1.2

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12467 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoModify test to use the %t substition (temporary name). This is available
John Criswell [Wed, 17 Mar 2004 02:31:29 +0000 (02:31 +0000)]
Modify test to use the %t substition (temporary name).  This is available
in the QMTest Testrunner tests.
Please note that putting output files in the Output directory no longer
works, as QMTest does not build Output directories anymore (nor does the
test run in a separate subdirectory, anyway).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12466 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix compilation of mesa, which I broke earlier today
Chris Lattner [Wed, 17 Mar 2004 02:02:47 +0000 (02:02 +0000)]
Fix compilation of mesa, which I broke earlier today

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12465 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoBe more accurate
Chris Lattner [Wed, 17 Mar 2004 01:59:27 +0000 (01:59 +0000)]
Be more accurate

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12464 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agocleanup comment
Chris Lattner [Wed, 17 Mar 2004 01:29:36 +0000 (01:29 +0000)]
cleanup comment

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12463 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMake the set of fixed (preallocated) intervals be a fixed superset of
Alkis Evlogimenos [Wed, 17 Mar 2004 00:48:59 +0000 (00:48 +0000)]
Make the set of fixed (preallocated) intervals be a fixed superset of
unhandled + handled. So unhandled is now including all fixed intervals
and fixed intervals never changes when processing a function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12462 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix bug in previous checkin
Chris Lattner [Tue, 16 Mar 2004 23:36:49 +0000 (23:36 +0000)]
Fix bug in previous checkin

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12458 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoOkay, so there is no reasonable way for tail duplication to update SSA form,
Chris Lattner [Tue, 16 Mar 2004 23:29:09 +0000 (23:29 +0000)]
Okay, so there is no reasonable way for tail duplication to update SSA form,
as it is making effectively arbitrary modifications to the CFG and we don't
have a domset/domfrontier implementations that can handle the dynamic updates.
Instead of having a bunch of code that doesn't actually work in practice,
just demote any potentially tricky values to the stack (causing the problem
to go away entirely).  Later invocations of mem2reg will rebuild SSA for us.

This fixes all of the major performance regressions with tail duplication
from LLVM 1.1.  For example, this loop:

---
int popcount(int x) {
  int result = 0;
  while (x != 0) {
    result = result + (x & 0x1);
    x = x >> 1;
  }
  return result;
}
---
Used to be compiled into:

int %popcount(int %X) {
entry:
br label %loopentry

loopentry: ; preds = %entry, %no_exit
%x.0 = phi int [ %X, %entry ], [ %tmp.9, %no_exit ] ; <int> [#uses=3]
%result.1.0 = phi int [ 0, %entry ], [ %tmp.6, %no_exit ] ; <int> [#uses=2]
%tmp.1 = seteq int %x.0, 0 ; <bool> [#uses=1]
br bool %tmp.1, label %loopexit, label %no_exit

no_exit: ; preds = %loopentry
%tmp.4 = and int %x.0, 1 ; <int> [#uses=1]
%tmp.6 = add int %tmp.4, %result.1.0 ; <int> [#uses=1]
%tmp.9 = shr int %x.0, ubyte 1 ; <int> [#uses=1]
br label %loopentry

loopexit: ; preds = %loopentry
ret int %result.1.0
}

And is now compiled into:

int %popcount(int %X) {
entry:
        br label %no_exit

no_exit:                ; preds = %entry, %no_exit
        %x.0.0 = phi int [ %X, %entry ], [ %tmp.9, %no_exit ]          ; <int> [#uses=2]
        %result.1.0.0 = phi int [ 0, %entry ], [ %tmp.6, %no_exit ]             ; <int> [#uses=1]
        %tmp.4 = and int %x.0.0, 1              ; <int> [#uses=1]
        %tmp.6 = add int %tmp.4, %result.1.0.0          ; <int> [#uses=2]
        %tmp.9 = shr int %x.0.0, ubyte 1                ; <int> [#uses=2]
        %tmp.1 = seteq int %tmp.9, 0            ; <bool> [#uses=1]
        br bool %tmp.1, label %loopexit, label %no_exit

loopexit:               ; preds = %no_exit
        ret int %tmp.6
}

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12457 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThis code was both incredibly complex and incredibly broken. Fix it.
Chris Lattner [Tue, 16 Mar 2004 23:23:11 +0000 (23:23 +0000)]
This code was both incredibly complex and incredibly broken.  Fix it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12456 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAnother simple testcase
Chris Lattner [Tue, 16 Mar 2004 23:07:52 +0000 (23:07 +0000)]
Another simple testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12455 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThe .type directive on Solaris uses the # character instead of @.
Brian Gaeke [Tue, 16 Mar 2004 22:52:04 +0000 (22:52 +0000)]
The .type directive on Solaris uses the # character instead of @.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12454 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix bug in zero-extending of shorts.
Brian Gaeke [Tue, 16 Mar 2004 22:45:42 +0000 (22:45 +0000)]
Fix bug in zero-extending of shorts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12453 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd UMULrr and SMULrr instructions.
Brian Gaeke [Tue, 16 Mar 2004 22:37:13 +0000 (22:37 +0000)]
Add UMULrr and SMULrr instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12452 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoUse ! for comment char; it works in both Solaris as and GAS.
Brian Gaeke [Tue, 16 Mar 2004 22:37:12 +0000 (22:37 +0000)]
Use ! for comment char; it works in both Solaris as and GAS.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12451 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMake getClass more robust by adding cLong.
Brian Gaeke [Tue, 16 Mar 2004 22:37:11 +0000 (22:37 +0000)]
Make getClass more robust by adding cLong.
Add handling for Mul instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12450 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoBug fixed
Chris Lattner [Tue, 16 Mar 2004 21:55:23 +0000 (21:55 +0000)]
Bug fixed

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12449 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNew testcase for PR297
Chris Lattner [Tue, 16 Mar 2004 21:52:24 +0000 (21:52 +0000)]
New testcase for PR297

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12448 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd a better head-of-file comment.
Brian Gaeke [Tue, 16 Mar 2004 21:47:20 +0000 (21:47 +0000)]
Add a better head-of-file comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12447 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoBug not fixed after all
Chris Lattner [Tue, 16 Mar 2004 21:39:04 +0000 (21:39 +0000)]
Bug not fixed after all

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12446 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix test
Chris Lattner [Tue, 16 Mar 2004 21:10:15 +0000 (21:10 +0000)]
Fix test

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12445 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix testcase
Chris Lattner [Tue, 16 Mar 2004 20:04:55 +0000 (20:04 +0000)]
Fix testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12444 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoPunt if we see gigantic PHI nodes. This improves a huge interpreter loop
Chris Lattner [Tue, 16 Mar 2004 19:52:53 +0000 (19:52 +0000)]
Punt if we see gigantic PHI nodes.  This improves a huge interpreter loop
testcase from 32.5s in -raise to take .3s

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12443 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoDo not try to optimize PHI nodes with incredibly high degree. This reduces SCCP
Chris Lattner [Tue, 16 Mar 2004 19:49:59 +0000 (19:49 +0000)]
Do not try to optimize PHI nodes with incredibly high degree.  This reduces SCCP
time from 615s to 1.49s on a large testcase that has a gigantic switch statement
that all of the blocks in the function go to (an intepreter).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12442 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoDo not copy gigantic switch instructions
Chris Lattner [Tue, 16 Mar 2004 19:45:22 +0000 (19:45 +0000)]
Do not copy gigantic switch instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12441 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix bug in bug name. It must be the painkillers that I haven't been taking
Chris Lattner [Tue, 16 Mar 2004 09:01:10 +0000 (09:01 +0000)]
Fix bug in bug name.  It must be the painkillers that I haven't been taking

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12440 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoImplement a new feature in the CFE, moving a GCC extension from the unsupported
Chris Lattner [Tue, 16 Mar 2004 08:54:07 +0000 (08:54 +0000)]
Implement a new feature in the CFE, moving a GCC extension from the unsupported
to the supported list

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12439 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNew testcase
Chris Lattner [Tue, 16 Mar 2004 08:49:48 +0000 (08:49 +0000)]
New testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12437 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoboog fixed
Chris Lattner [Tue, 16 Mar 2004 08:40:35 +0000 (08:40 +0000)]
boog fixed

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12436 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix PR296: [execution engines] Unhandled cast constant expression
Chris Lattner [Tue, 16 Mar 2004 08:38:56 +0000 (08:38 +0000)]
Fix PR296: [execution engines] Unhandled cast constant expression

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12435 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a regression from this patch:
Chris Lattner [Tue, 16 Mar 2004 06:00:15 +0000 (06:00 +0000)]
Fix a regression from this patch:
http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20040308/013095.html

Basically, this patch only updated the immediate dominatees of the header node
to tell them that the preheader also dominated them.  In practice, ALL
dominatees of the header node are also dominated by the preheader.

This fixes: LoopSimplify/2004-03-15-IncorrectDomUpdate.
and PR293

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12434 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNew testcase for PR293
Chris Lattner [Tue, 16 Mar 2004 05:44:02 +0000 (05:44 +0000)]
New testcase for PR293

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12433 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoBug fixed
Chris Lattner [Tue, 16 Mar 2004 05:28:35 +0000 (05:28 +0000)]
Bug fixed

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12432 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agofoo Bug 291, bar PR291
Chris Lattner [Tue, 16 Mar 2004 05:18:24 +0000 (05:18 +0000)]
foo Bug 291, bar PR291

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12431 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agofoo bug291 bar PR 291
Chris Lattner [Tue, 16 Mar 2004 05:17:07 +0000 (05:17 +0000)]
foo bug291  bar PR 291

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12430 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoPR291
Chris Lattner [Tue, 16 Mar 2004 05:16:05 +0000 (05:16 +0000)]
PR291
Bug 291!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12429 91177308-0d34-0410-b5e6-96231b3b80d8

20 years ago// Testcase from Bug 291
Chris Lattner [Tue, 16 Mar 2004 05:14:47 +0000 (05:14 +0000)]
// Testcase from Bug 291

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12428 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd some missing functions. Make sure to handle calls together in case the
Chris Lattner [Tue, 16 Mar 2004 03:41:35 +0000 (03:41 +0000)]
Add some missing functions.  Make sure to handle calls together in case the
client has another VN implementation that can VN calls.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12427 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix thinko, and PR292
Chris Lattner [Tue, 16 Mar 2004 01:51:54 +0000 (01:51 +0000)]
Fix thinko, and PR292

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12426 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix PR294
Chris Lattner [Tue, 16 Mar 2004 01:45:55 +0000 (01:45 +0000)]
Fix PR294

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12425 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd LAHF instruction
Alkis Evlogimenos [Mon, 15 Mar 2004 17:20:14 +0000 (17:20 +0000)]
Add LAHF instruction

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12424 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRestore old inlining heuristic. As the comment indicates, this is a nasty
Chris Lattner [Mon, 15 Mar 2004 06:38:14 +0000 (06:38 +0000)]
Restore old inlining heuristic.  As the comment indicates, this is a nasty
horrible hack.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12423 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoOk, the assertion was bogus. Calls that do not read/write memory should not
Chris Lattner [Mon, 15 Mar 2004 06:28:07 +0000 (06:28 +0000)]
Ok, the assertion was bogus.  Calls that do not read/write memory should not
have an alias set, just like adds and subtracts don't.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12422 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThis assertion is bogus now that calls do not necessarily read/write memory
Chris Lattner [Mon, 15 Mar 2004 06:24:15 +0000 (06:24 +0000)]
This assertion is bogus now that calls do not necessarily read/write memory

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12421 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd counters for the number of calls elimianted
Chris Lattner [Mon, 15 Mar 2004 05:46:59 +0000 (05:46 +0000)]
Add counters for the number of calls elimianted

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12420 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoImplement CSE of call instructions in the most trivial case. This implements
Chris Lattner [Mon, 15 Mar 2004 05:44:59 +0000 (05:44 +0000)]
Implement CSE of call instructions in the most trivial case.  This implements
GCSE/call_cse.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12419 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNew testcase for CSE of call instructions
Chris Lattner [Mon, 15 Mar 2004 05:44:29 +0000 (05:44 +0000)]
New testcase for CSE of call instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12418 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a minor bug, implementing GCSE/call_pure_function.ll
Chris Lattner [Mon, 15 Mar 2004 04:18:28 +0000 (04:18 +0000)]
Fix a minor bug, implementing GCSE/call_pure_function.ll

Also, add some stuff I missed before.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12417 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMake sure that pure calls don't kill loads
Chris Lattner [Mon, 15 Mar 2004 04:17:53 +0000 (04:17 +0000)]
Make sure that pure calls don't kill loads

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12416 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoImplement LICM of calls in simple cases. This is sufficient to move around
Chris Lattner [Mon, 15 Mar 2004 04:11:30 +0000 (04:11 +0000)]
Implement LICM of calls in simple cases.  This is sufficient to move around
sin/cos/strlen calls and stuff.  This implements:
  LICM/call_sink_pure_function.ll
  LICM/call_sink_const_function.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12415 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNew testcases to test LICM of call instructions
Chris Lattner [Mon, 15 Mar 2004 04:10:08 +0000 (04:10 +0000)]
New testcases to test LICM of call instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12414 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoDon't be COMPLETELY pessimistic in the face of function calls
Chris Lattner [Mon, 15 Mar 2004 04:08:36 +0000 (04:08 +0000)]
Don't be COMPLETELY pessimistic in the face of function calls

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12413 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoTweak argument
Chris Lattner [Mon, 15 Mar 2004 04:08:18 +0000 (04:08 +0000)]
Tweak argument

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12412 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoDeinline a couple of methods. Improve comment.
Chris Lattner [Mon, 15 Mar 2004 04:07:59 +0000 (04:07 +0000)]
Deinline a couple of methods.  Improve comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12411 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoDeinline some virtual methods, provide better mod/ref answers through the
Chris Lattner [Mon, 15 Mar 2004 04:07:29 +0000 (04:07 +0000)]
Deinline some virtual methods, provide better mod/ref answers through the
use of the boolean queries

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12410 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoPass through the boolean queries
Chris Lattner [Mon, 15 Mar 2004 04:06:46 +0000 (04:06 +0000)]
Pass through the boolean queries

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12409 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoTeach basicaa about some stdc functions.
Chris Lattner [Mon, 15 Mar 2004 03:36:49 +0000 (03:36 +0000)]
Teach basicaa about some stdc functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12408 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd two new methods which can be used to enable a bunch of transformations
Chris Lattner [Mon, 15 Mar 2004 01:58:54 +0000 (01:58 +0000)]
Add two new methods which can be used to enable a bunch of transformations
in common cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12407 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMostly cosmetic improvements. Do fix the bug where a global value was considered...
Chris Lattner [Mon, 15 Mar 2004 01:26:44 +0000 (01:26 +0000)]
Mostly cosmetic improvements.  Do fix the bug where a global value was considered an input.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12406 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAssert that input blocks meet the invariants we expect
Chris Lattner [Mon, 15 Mar 2004 01:18:23 +0000 (01:18 +0000)]
Assert that input blocks meet the invariants we expect

Simplify the input/output finder.  All elements of a basic block are
instructions.  Any used arguments are also inputs.  An instruction can only
be used by another instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12405 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNew testcase that causes the code extractor to generate bogus code.
Chris Lattner [Mon, 15 Mar 2004 00:08:49 +0000 (00:08 +0000)]
New testcase that causes the code extractor to generate bogus code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12404 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix several bugs in the loop extractor. In particular, subloops were never
Chris Lattner [Mon, 15 Mar 2004 00:02:02 +0000 (00:02 +0000)]
Fix several bugs in the loop extractor.  In particular, subloops were never
extracted, and a function that contained a single top-level loop never had
the loop extracted, regardless of how much non-loop code there was.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12403 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNo correctness fixes here, just minor qoi fixes:
Chris Lattner [Sun, 14 Mar 2004 23:43:24 +0000 (23:43 +0000)]
No correctness fixes here, just minor qoi fixes:

* Don't insert a branch to the switch instruction after the call, just
  make it a single block.
* Insert the new alloca instructions in the entry block of the original
  function instead of having them execute dynamically
* Don't make the default edge of the switch instruction go back to the switch.
  The loop extractor shouldn't create new loops!
* Give meaningful names to the alloca slots and the reload instructions
* Some minor code simplifications

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12402 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoSimplify code a bit, and fix bug CodeExtractor/2004-03-14-NoSwitchSupport.ll
Chris Lattner [Sun, 14 Mar 2004 23:05:49 +0000 (23:05 +0000)]
Simplify code a bit, and fix bug CodeExtractor/2004-03-14-NoSwitchSupport.ll

This also implements a two minor improvements:
  * Don't insert live-out stores IN the region, insert them on the code path
    that exits the region
  * If the region is exited to the same block from multiple paths, share the
    switch statement entry, live-out store code, and the basic block.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12401 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoSimplify the code a bit by making the collection of basic blocks to extract
Chris Lattner [Sun, 14 Mar 2004 22:34:55 +0000 (22:34 +0000)]
Simplify the code a bit by making the collection of basic blocks to extract
a member of the class.  While we're at it, turn the collection into a set
instead of a vector to improve efficiency and make queries simpler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12400 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNew testcase that crashes the loop extractor
Chris Lattner [Sun, 14 Mar 2004 22:16:52 +0000 (22:16 +0000)]
New testcase that crashes the loop extractor

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12399 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAfter reducing a miscompiled program down to the functions which are being
Chris Lattner [Sun, 14 Mar 2004 22:08:00 +0000 (22:08 +0000)]
After reducing a miscompiled program down to the functions which are being
miscompiled, try to use the loop extractor to reduce the program down to a
loop nest that is being miscompiled.  In practice, the loop extractor appears
to have too many bugs for this to be useful, but hopefully they will be fixed
soon...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12398 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a minor bug in runPassesOn
Chris Lattner [Sun, 14 Mar 2004 21:37:41 +0000 (21:37 +0000)]
Fix a minor bug in runPassesOn

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12397 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd a new "AutoDebugCrashes" option
Chris Lattner [Sun, 14 Mar 2004 21:21:57 +0000 (21:21 +0000)]
Add a new "AutoDebugCrashes" option

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12396 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRefactor to use a new method
Chris Lattner [Sun, 14 Mar 2004 21:17:22 +0000 (21:17 +0000)]
Refactor to use a new method

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12395 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd new method
Chris Lattner [Sun, 14 Mar 2004 21:17:03 +0000 (21:17 +0000)]
Add new method

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12394 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRefactor and clean up a bunch more code. No major functionality changes.
Chris Lattner [Sun, 14 Mar 2004 20:50:42 +0000 (20:50 +0000)]
Refactor and clean up a bunch more code.  No major functionality changes.
 * Make several methods of bugdriver global functions (ParseInputFile, PrintFunctionList)
 * Make PrintFunctionList truncate the output after 10 entries, like the crash debugger
   did.  This allows code sharing.
 * Add a couple of methods to BugDriver that allows us to eliminate some friends
 * Improve comments in ExtractFunction.cpp
 * Make classes that used to be friends up bugdriver now live in anon namespaces
 * Rip a bunch of functionality in the miscompilation tester into a new
   TestMergedProgram function for future code sharing.
 * Fix a bug in the miscompilation tester induced in my last checkin

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12393 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAnother API change to MRegisterInfo::foldMemoryOperand. Instead of a
Alkis Evlogimenos [Sun, 14 Mar 2004 20:14:27 +0000 (20:14 +0000)]
Another API change to MRegisterInfo::foldMemoryOperand. Instead of a
MachineBasicBlock::iterator take a MachineInstr*.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12392 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd a method to extract a loop
Chris Lattner [Sun, 14 Mar 2004 20:02:07 +0000 (20:02 +0000)]
Add a method to extract a loop

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12391 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoSplit into two passes. Now there is the general loop extractor, usable on
Chris Lattner [Sun, 14 Mar 2004 20:01:36 +0000 (20:01 +0000)]
Split into two passes.  Now there is the general loop extractor, usable on
the command line, and the single loop extractor, usable by bugpoint

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12390 91177308-0d34-0410-b5e6-96231b3b80d8