oota-llvm.git
19 years agoRemove some useless map operations. Loads/stores that are in the same
Chris Lattner [Sat, 29 Jan 2005 06:39:25 +0000 (06:39 +0000)]
Remove some useless map operations.  Loads/stores that are in the same
BB as the load are not included in the Cand* sets at all.

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

19 years agoBefore doing expensive global analysis, check to make sure the pointer is
Chris Lattner [Sat, 29 Jan 2005 06:31:53 +0000 (06:31 +0000)]
Before doing expensive global analysis, check to make sure the pointer is
not invalidated on entry and on exit of the block.  This fixes some N^2
behavior in common cases, and speeds up gcc another 5% to 22.35s.

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

19 years agoFix quotes.
Chris Lattner [Sat, 29 Jan 2005 06:29:45 +0000 (06:29 +0000)]
Fix quotes.

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

19 years agoUnbreak VC++ build
Jeff Cohen [Sat, 29 Jan 2005 06:27:16 +0000 (06:27 +0000)]
Unbreak VC++ build

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

19 years agoMinor simplification/speedup. Replaces a set lookup with a pointer comparison.
Chris Lattner [Sat, 29 Jan 2005 06:20:55 +0000 (06:20 +0000)]
Minor simplification/speedup.  Replaces a set lookup with a pointer comparison.
This speeds up 176.gcc from 25.73s to 23.48s, which is 9.5%

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

19 years agoEliminate generality that is not buying us anything. In particular, this
Chris Lattner [Sat, 29 Jan 2005 06:11:16 +0000 (06:11 +0000)]
Eliminate generality that is not buying us anything.  In particular, this
will cause us to miss cases where the input pointer to a load could be value
numbered to another load.  Something like this:

  %X = load int* %P1
  %Y = load int* %P2

Those are obviously the same if P1/P2 are the same.  The code this patch
removes attempts to handle that.  However, since GCSE iterates, this doesn't
actually buy us anything: GCSE will first replace P1 or P2 with the other
one, then the load can be value numbered as equal.

Removing this code speeds up gcse a lot.  On 176.gcc in debug mode, this
speeds up gcse from 29.08s -> 25.73s, a 13% savings.

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

19 years agoIf we see:
Chris Lattner [Sat, 29 Jan 2005 05:57:01 +0000 (05:57 +0000)]
If we see:

  %A = alloca int
  %V = load int* %A

value number %V to undef, not 0.

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

19 years agoMemory used is a delta between memuse at the start of the time and the
Chris Lattner [Sat, 29 Jan 2005 05:21:16 +0000 (05:21 +0000)]
Memory used is a delta between memuse at the start of the time and the
memuse at the end, thus it is signed.

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

19 years agoUnbreak VC++ build
Jeff Cohen [Sat, 29 Jan 2005 03:32:49 +0000 (03:32 +0000)]
Unbreak VC++ build

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

19 years agoMake sure that we always grow a multiple of 2 operands.
Chris Lattner [Sat, 29 Jan 2005 01:05:12 +0000 (01:05 +0000)]
Make sure that we always grow a multiple of 2 operands.

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

19 years agonoteworthy.
Chris Lattner [Sat, 29 Jan 2005 00:44:22 +0000 (00:44 +0000)]
noteworthy.

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

19 years agoAdjust to changes in instruction interfaces.
Chris Lattner [Sat, 29 Jan 2005 00:39:08 +0000 (00:39 +0000)]
Adjust to changes in instruction interfaces.

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

19 years agoSwitchinst takes a hint for the number of cases it will have.
Chris Lattner [Sat, 29 Jan 2005 00:38:45 +0000 (00:38 +0000)]
Switchinst takes a hint for the number of cases it will have.

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

19 years agoswitchinst ctor now takes a hint for the number of cases that it will have.
Chris Lattner [Sat, 29 Jan 2005 00:38:26 +0000 (00:38 +0000)]
switchinst ctor now takes a hint for the number of cases that it will have.

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

19 years agoAdjust Valuehandle to hold its operand directly in it.
Chris Lattner [Sat, 29 Jan 2005 00:37:36 +0000 (00:37 +0000)]
Adjust Valuehandle to hold its operand directly in it.

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

19 years agoFinegrainify namespacification.
Chris Lattner [Sat, 29 Jan 2005 00:36:59 +0000 (00:36 +0000)]
Finegrainify namespacification.
Adjust TmpInstruction to work with the new User model.

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

19 years agoadd namespace qualifier
Chris Lattner [Sat, 29 Jan 2005 00:36:38 +0000 (00:36 +0000)]
add namespace qualifier

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

19 years agoAdjust to changes in User class and minor changes in instruction ctors.
Chris Lattner [Sat, 29 Jan 2005 00:36:19 +0000 (00:36 +0000)]
Adjust to changes in User class and minor changes in instruction ctors.

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

19 years agoAdjust to slight changes in instruction interfaces.
Chris Lattner [Sat, 29 Jan 2005 00:35:55 +0000 (00:35 +0000)]
Adjust to slight changes in instruction interfaces.

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

19 years agoAdjust to changes in User class.
Chris Lattner [Sat, 29 Jan 2005 00:35:33 +0000 (00:35 +0000)]
Adjust to changes in User class.

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

19 years agoMerge InstrTypes.cpp into this file
Chris Lattner [Sat, 29 Jan 2005 00:35:16 +0000 (00:35 +0000)]
Merge InstrTypes.cpp into this file
Adjust to changes in the User class, operand handling is very different.
PHI node and switch statements must handle explicit resizing of operand
lists.

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

19 years agoAdjust to changes in User class. Aggregate constants now must explicitly
Chris Lattner [Sat, 29 Jan 2005 00:34:39 +0000 (00:34 +0000)]
Adjust to changes in User class.  Aggregate constants now must explicitly
manage their operands.

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

19 years agoThis file is now merged into Instructions.cpp
Chris Lattner [Sat, 29 Jan 2005 00:33:32 +0000 (00:33 +0000)]
This file is now merged into Instructions.cpp

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

19 years agoAdjust to changes in the User class.
Chris Lattner [Sat, 29 Jan 2005 00:33:00 +0000 (00:33 +0000)]
Adjust to changes in the User class.

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

19 years agoAdjust to changes in the User class. Introduce a new UnaryInstruction
Chris Lattner [Sat, 29 Jan 2005 00:32:51 +0000 (00:32 +0000)]
Adjust to changes in the User class.  Introduce a new UnaryInstruction
class.

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

19 years agoAdjust to user changes.
Chris Lattner [Sat, 29 Jan 2005 00:32:00 +0000 (00:32 +0000)]
Adjust to user changes.

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

19 years agoMany changes to cope with the User.h changes. Instructions now generally
Chris Lattner [Sat, 29 Jan 2005 00:31:36 +0000 (00:31 +0000)]
Many changes to cope with the User.h changes.  Instructions now generally
directly embed their operands.

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

19 years agoAdjust to User.h changes.
Chris Lattner [Sat, 29 Jan 2005 00:30:52 +0000 (00:30 +0000)]
Adjust to User.h changes.

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

19 years agoInstead of storing operands as std::vector<Use>, just maintain a pointer
Chris Lattner [Sat, 29 Jan 2005 00:29:39 +0000 (00:29 +0000)]
Instead of storing operands as std::vector<Use>, just maintain a pointer
and num operands in the User class.  this allows us to embed the operands
directly in the subclasses if possible.  For example, for binary operators
we store the two operands in the derived class.

The has several effects:
  1. it improves locality because the operands and instruction are together
  2. it makes accesses to operands faster (one less load) if you access them
     through the derived class pointer.  For example this:

Value *GetBinaryOperatorOp(BinaryOperator *I, int i) {
  return I->getOperand(i);
}

Was compiled to:

_Z19GetBinaryOperatorOpPN4llvm14BinaryOperatorEi:
        movl    4(%esp), %edx
        movl    8(%esp), %eax
        sall    $4, %eax
        movl    24(%edx), %ecx
        addl    %ecx, %eax
        movl    (%eax), %eax
        ret

and is now compiled to:

_Z19GetBinaryOperatorOpPN4llvm14BinaryOperatorEi:
        movl    8(%esp), %eax
        movl    4(%esp), %edx
        sall    $4, %eax
        addl    %edx, %eax
        movl    44(%eax), %eax
        ret

Accesses through "Instruction*" are unmodified.

   3. This reduces memory consumption (by about 3%) by eliminating 1 word of
      vector overhead and a malloc header on a seperate object.
   4. This speeds up gccas about 10% (both debug and release builds) on
      large things (such as 176.gcc).  For example, it takes a debug build
      from 172.9 -> 155.6s and a release gccas from 67.7 -> 61.8s

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

19 years agofix ExprMap, partially teach about add long
Andrew Lenharth [Fri, 28 Jan 2005 23:17:54 +0000 (23:17 +0000)]
fix ExprMap, partially teach about add long

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

19 years agoFix a nasty thinko in my previous commit.
Chris Lattner [Fri, 28 Jan 2005 23:17:27 +0000 (23:17 +0000)]
Fix a nasty thinko in my previous commit.

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

19 years agoAlpha doesn't have a native f32 extload instruction.
Chris Lattner [Fri, 28 Jan 2005 22:58:25 +0000 (22:58 +0000)]
Alpha doesn't have a native f32 extload instruction.

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

19 years agoimplement legalization of truncates whose results and sources need to be
Chris Lattner [Fri, 28 Jan 2005 22:52:50 +0000 (22:52 +0000)]
implement legalization of truncates whose results and sources need to be
truncated, e.g. (truncate:i8 something:i16) on a 32 or 64-bit RISC.

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

19 years agoGet alpha working with memset/memcpy/memmove
Chris Lattner [Fri, 28 Jan 2005 22:29:18 +0000 (22:29 +0000)]
Get alpha working with memset/memcpy/memmove

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

19 years agoFix some typos in the Makefile.rules.
Reid Spencer [Fri, 28 Jan 2005 19:52:32 +0000 (19:52 +0000)]
Fix some typos in the Makefile.rules.
Patch contributed by Vladimer Merzliakov.

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

19 years agoHrm, who knows what 'uint' is, but it seems to work sometimes? Wierd.
Chris Lattner [Fri, 28 Jan 2005 19:37:35 +0000 (19:37 +0000)]
Hrm, who knows what 'uint' is, but it seems to work sometimes?  Wierd.

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

19 years ago* add some DEBUG statements
Chris Lattner [Fri, 28 Jan 2005 19:32:01 +0000 (19:32 +0000)]
* add some DEBUG statements
* Properly compile this:

struct a {};
int test() {
  struct a b[2];
  if (&b[0] != &b[1])
    abort ();
  return 0;
}

to 'return 0', not abort().

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

19 years agoFix ConstProp/2005-01-28-SetCCGEP.ll: indexing over zero sized elements does
Chris Lattner [Fri, 28 Jan 2005 19:09:51 +0000 (19:09 +0000)]
Fix ConstProp/2005-01-28-SetCCGEP.ll: indexing over zero sized elements does
not change the address.

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

19 years agoNew testcase.
Chris Lattner [Fri, 28 Jan 2005 19:08:32 +0000 (19:08 +0000)]
New testcase.

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

19 years agoAdd some initial documentation for the SelectionDAG based instruction selectors
Chris Lattner [Fri, 28 Jan 2005 17:22:53 +0000 (17:22 +0000)]
Add some initial documentation for the SelectionDAG based instruction selectors

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

19 years agoDo not clean up if the MappedFile was never used or if the client already
Chris Lattner [Fri, 28 Jan 2005 16:08:23 +0000 (16:08 +0000)]
Do not clean up if the MappedFile was never used or if the client already
closed the file.  This unbreaks the build.

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

19 years agofix ExprMap and constant check in setcc
Andrew Lenharth [Fri, 28 Jan 2005 14:06:46 +0000 (14:06 +0000)]
fix ExprMap and constant check in setcc

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

19 years agoGet VC++ compiling again
Jeff Cohen [Fri, 28 Jan 2005 07:29:32 +0000 (07:29 +0000)]
Get VC++ compiling again

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

19 years agoConvert some old C-style casts to C++ style.
Reid Spencer [Fri, 28 Jan 2005 07:22:20 +0000 (07:22 +0000)]
Convert some old C-style casts to C++ style.

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

19 years agomove FP into it's own select
Andrew Lenharth [Fri, 28 Jan 2005 06:57:18 +0000 (06:57 +0000)]
move FP into it's own select

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

19 years agoCopyFromReg produces two values. Make sure that we remember that both are
Chris Lattner [Fri, 28 Jan 2005 06:27:38 +0000 (06:27 +0000)]
CopyFromReg produces two values.  Make sure that we remember that both are
legalized, and actually return the correct result when we legalize the chain first.

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

19 years agoThese passes are no more.
Chris Lattner [Fri, 28 Jan 2005 06:13:52 +0000 (06:13 +0000)]
These passes are no more.

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

19 years agoRemove this code as it is currently completely broken and unmaintained.
Chris Lattner [Fri, 28 Jan 2005 06:12:46 +0000 (06:12 +0000)]
Remove this code as it is currently completely broken and unmaintained.
If needed, this can be resurrected from CVS.

Note that several of the interfaces (e.g. the IPModRef ones) are supersumed
by generic AliasAnalysis interfaces that have been written since this code
was developed (and they are not DSA specific).

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

19 years agoProperly close mapped files.
Jeff Cohen [Fri, 28 Jan 2005 01:17:07 +0000 (01:17 +0000)]
Properly close mapped files.

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

19 years agoMark -parallel pass as `experimental'
Misha Brukman [Thu, 27 Jan 2005 17:59:51 +0000 (17:59 +0000)]
Mark -parallel pass as `experimental'

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

19 years agostack frame fix and zero FP reg fix
Andrew Lenharth [Thu, 27 Jan 2005 08:31:19 +0000 (08:31 +0000)]
stack frame fix and zero FP reg fix

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

19 years agoFloating point instructions like Floating point registers
Andrew Lenharth [Thu, 27 Jan 2005 07:58:15 +0000 (07:58 +0000)]
Floating point instructions like Floating point registers

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

19 years agoint to float conversion and another setcc
Andrew Lenharth [Thu, 27 Jan 2005 07:50:35 +0000 (07:50 +0000)]
int to float conversion and another setcc

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

19 years agoFix grammar
Misha Brukman [Thu, 27 Jan 2005 06:46:38 +0000 (06:46 +0000)]
Fix grammar

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

19 years agoteach isel about comparison with constants and zero extending bits
Andrew Lenharth [Thu, 27 Jan 2005 03:49:45 +0000 (03:49 +0000)]
teach isel about comparison with constants and zero extending bits

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

19 years agoFix some Path bugs
Jeff Cohen [Thu, 27 Jan 2005 03:49:03 +0000 (03:49 +0000)]
Fix some Path bugs

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

19 years agoperhaps this will let me have calls again
Andrew Lenharth [Thu, 27 Jan 2005 01:22:48 +0000 (01:22 +0000)]
perhaps this will let me have calls again

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

19 years agominor bug fix
Andrew Lenharth [Thu, 27 Jan 2005 00:52:26 +0000 (00:52 +0000)]
minor bug fix

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

19 years agominor bug fix
Andrew Lenharth [Thu, 27 Jan 2005 00:51:05 +0000 (00:51 +0000)]
minor bug fix

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

19 years agoadded instructions for fp to int to fp moves
Andrew Lenharth [Wed, 26 Jan 2005 23:56:48 +0000 (23:56 +0000)]
added instructions for fp to int to fp moves

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

19 years ago initial fp support
Andrew Lenharth [Wed, 26 Jan 2005 21:54:09 +0000 (21:54 +0000)]
 initial fp support

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

19 years agoxfail this.
Chris Lattner [Wed, 26 Jan 2005 07:09:44 +0000 (07:09 +0000)]
xfail this.

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

19 years agoXFAIL this for now.
Chris Lattner [Wed, 26 Jan 2005 07:08:42 +0000 (07:08 +0000)]
XFAIL this for now.

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

19 years agohum, writing on one machine, testing on another...
Andrew Lenharth [Wed, 26 Jan 2005 02:53:56 +0000 (02:53 +0000)]
hum, writing on one machine, testing on another...

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

19 years agoadd some operations, fix others. should compile several more tests now
Andrew Lenharth [Wed, 26 Jan 2005 01:24:38 +0000 (01:24 +0000)]
add some operations, fix others.  should compile several more tests now

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

19 years agoWe can fold promoted and non-promoted loads into divs also!
Chris Lattner [Tue, 25 Jan 2005 20:35:10 +0000 (20:35 +0000)]
We can fold promoted and non-promoted loads into divs also!

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

19 years agoFold promoted loads into binary ops for FP, allowing us to generate m32 forms
Chris Lattner [Tue, 25 Jan 2005 20:03:11 +0000 (20:03 +0000)]
Fold promoted loads into binary ops for FP, allowing us to generate m32 forms
of FP ops.

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

19 years agoproblems with bools, and their work arounds
Andrew Lenharth [Tue, 25 Jan 2005 19:58:40 +0000 (19:58 +0000)]
problems with bools, and their work arounds

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

19 years agoAdd a dependency to the trace library so that it gets pulled in
Alkis Evlogimenos [Tue, 25 Jan 2005 16:23:57 +0000 (16:23 +0000)]
Add a dependency to the trace library so that it gets pulled in
automatically.

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

19 years agoDocument the --load option.
Reid Spencer [Tue, 25 Jan 2005 05:04:49 +0000 (05:04 +0000)]
Document the --load option.

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

19 years agomore load choices, better add with imm
Andrew Lenharth [Tue, 25 Jan 2005 00:35:34 +0000 (00:35 +0000)]
more load choices, better add with imm

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

19 years agoMake -ds-aa more useful, allowing it to be updated as xforms hack on the program.
Chris Lattner [Mon, 24 Jan 2005 20:00:14 +0000 (20:00 +0000)]
Make -ds-aa more useful, allowing it to be updated as xforms hack on the program.

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

19 years agoAdd some methods.
Chris Lattner [Mon, 24 Jan 2005 19:55:34 +0000 (19:55 +0000)]
Add some methods.

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

19 years agoClean ups, and taught the instruction selector about immediate forms
Andrew Lenharth [Mon, 24 Jan 2005 19:44:07 +0000 (19:44 +0000)]
Clean ups, and taught the instruction selector about immediate forms

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

19 years agoAlpha JIT prune
Andrew Lenharth [Mon, 24 Jan 2005 18:48:22 +0000 (18:48 +0000)]
Alpha JIT prune

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

19 years agoinclude prune and JIT prune
Andrew Lenharth [Mon, 24 Jan 2005 18:45:41 +0000 (18:45 +0000)]
include prune and JIT prune

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

19 years agoPruned includes
Andrew Lenharth [Mon, 24 Jan 2005 18:37:48 +0000 (18:37 +0000)]
Pruned includes

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

19 years agolet configure recognize Alphas
Andrew Lenharth [Mon, 24 Jan 2005 17:33:52 +0000 (17:33 +0000)]
let configure recognize Alphas

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

19 years agolet configure recognize Alphas
Andrew Lenharth [Mon, 24 Jan 2005 17:25:41 +0000 (17:25 +0000)]
let configure recognize Alphas

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

19 years agoMark CVS versions different from releases
Misha Brukman [Mon, 24 Jan 2005 16:29:24 +0000 (16:29 +0000)]
Mark CVS versions different from releases

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

19 years ago`primitive' has no `a'
Misha Brukman [Mon, 24 Jan 2005 16:28:03 +0000 (16:28 +0000)]
`primitive' has no `a'

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

19 years agoDo not return true from isSized for things without a size (like functions and
Chris Lattner [Mon, 24 Jan 2005 16:00:52 +0000 (16:00 +0000)]
Do not return true from isSized for things without a size (like functions and
labels) even though they are concrete.  This fixes the DSA regressions from
last night.

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

19 years agoThis giant patch speeds up Type::isSized(). Before, this would have to search
Chris Lattner [Mon, 24 Jan 2005 02:08:34 +0000 (02:08 +0000)]
This giant patch speeds up Type::isSized().  Before, this would have to search
large nested types over and over again to determine if they are sized or not.
Now, isSized() is able to make snap decisions about all concrete types, which
are a common occurance (and includes all primitives).

On 177.mesa, this speeds up DSE from 39.5s -> 21.3s and GCSE from
13.2s -> 11.3s, reducing gccas time from 80s -> 61s (this is a debug build).

DSE and GCSE are still too slow on this testcase, but this is a simple
improvement.

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

19 years agoFix a spurious warning.
Chris Lattner [Mon, 24 Jan 2005 01:40:18 +0000 (01:40 +0000)]
Fix a spurious warning.

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

19 years agoSilence a warning.
Chris Lattner [Sun, 23 Jan 2005 23:20:06 +0000 (23:20 +0000)]
Silence a warning.

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

19 years agoSilence optimized warnings.
Chris Lattner [Sun, 23 Jan 2005 23:19:44 +0000 (23:19 +0000)]
Silence optimized warnings.

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

19 years agoAllow the FP stackifier to completely ignore functions that do not use FP at
Chris Lattner [Sun, 23 Jan 2005 23:13:59 +0000 (23:13 +0000)]
Allow the FP stackifier to completely ignore functions that do not use FP at
all.  This should speed up the X86 backend fairly significantly on integer
codes.  Now if only we didn't have to compute livevar still... ;-)

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

19 years agoSimplify/speedup the PEI by not having to scan for uses of the callee saved
Chris Lattner [Sun, 23 Jan 2005 23:13:12 +0000 (23:13 +0000)]
Simplify/speedup the PEI by not having to scan for uses of the callee saved
registers.  This information is computed directly by the register allocator
now.

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

19 years agoAdd an accessor.
Chris Lattner [Sun, 23 Jan 2005 22:57:27 +0000 (22:57 +0000)]
Add an accessor.

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

19 years agoUpdate physregsused info.
Chris Lattner [Sun, 23 Jan 2005 22:55:45 +0000 (22:55 +0000)]
Update physregsused info.

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

19 years agoUpdate this pass to set PhysRegsUsed info in MachineFunction.
Chris Lattner [Sun, 23 Jan 2005 22:51:56 +0000 (22:51 +0000)]
Update this pass to set PhysRegsUsed info in MachineFunction.

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

19 years agoUpdate these register allocators to set the PhysRegUsed info in MachineFunction.
Chris Lattner [Sun, 23 Jan 2005 22:45:13 +0000 (22:45 +0000)]
Update these register allocators to set the PhysRegUsed info in MachineFunction.

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

19 years agoAdd support for the PhysRegsUsed array.
Chris Lattner [Sun, 23 Jan 2005 22:13:58 +0000 (22:13 +0000)]
Add support for the PhysRegsUsed array.

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

19 years agoExpose more information from register allocation to passes that run after
Chris Lattner [Sun, 23 Jan 2005 22:13:36 +0000 (22:13 +0000)]
Expose more information from register allocation to passes that run after
it.

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

19 years agoSpeed this up a bit by making ModifiedRegs a vector<char> not vector<bool>
Chris Lattner [Sun, 23 Jan 2005 21:45:01 +0000 (21:45 +0000)]
Speed this up a bit by making ModifiedRegs a vector<char> not vector<bool>

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

19 years agoGet rid of a several dozen more and instructions in specint.
Chris Lattner [Sun, 23 Jan 2005 20:26:55 +0000 (20:26 +0000)]
Get rid of a several dozen more and instructions in specint.

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

19 years agoFix crash comparing empty file against nonempty file.
Chris Lattner [Sun, 23 Jan 2005 06:02:40 +0000 (06:02 +0000)]
Fix crash comparing empty file against nonempty file.

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

19 years agoAdjust to changes in SelectionDAG interfaces
Chris Lattner [Sun, 23 Jan 2005 04:42:50 +0000 (04:42 +0000)]
Adjust to changes in SelectionDAG interfaces
The first half of correct chain insertion for libcalls. This is not enough
to fix Fhourstones yet though.

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

19 years agoRemove the 3 HACK HACK HACKs I put in before, fixing them properly with
Chris Lattner [Sun, 23 Jan 2005 04:39:44 +0000 (04:39 +0000)]
Remove the 3 HACK HACK HACKs I put in before, fixing them properly with
the new TLI that is available.

Implement support for handling out of range shifts.  This allows us to
compile this code (a 64-bit rotate):

unsigned long long f3(unsigned long long x) {
  return (x << 32) | (x >> (64-32));
}

into this:

f3:
        mov %EDX, DWORD PTR [%ESP + 4]
        mov %EAX, DWORD PTR [%ESP + 8]
        ret

GCC produces this:

$ gcc t.c -masm=intel -O3 -S -o - -fomit-frame-pointer
..
f3:
        push    %ebx
        mov     %ebx, DWORD PTR [%esp+12]
        mov     %ecx, DWORD PTR [%esp+8]
        mov     %eax, %ebx
        mov     %edx, %ecx
        pop     %ebx
        ret

The Simple ISEL produces (eww gross):

f3:
        sub %ESP, 4
        mov DWORD PTR [%ESP], %ESI
        mov %EDX, DWORD PTR [%ESP + 8]
        mov %ECX, DWORD PTR [%ESP + 12]
        mov %EAX, 0
        mov %ESI, 0
        or %EAX, %ECX
        or %EDX, %ESI
        mov %ESI, DWORD PTR [%ESP]
        add %ESP, 4
        ret

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

19 years agoAdjust to changes in SelectionDAG interface.
Chris Lattner [Sun, 23 Jan 2005 04:36:26 +0000 (04:36 +0000)]
Adjust to changes in SelectionDAG interface.

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