oota-llvm.git
17 years agouse smallvector instead of vector to make constant folding a bit more efficient
Chris Lattner [Tue, 30 Jan 2007 23:15:19 +0000 (23:15 +0000)]
use smallvector instead of vector to make constant folding a bit more efficient

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

17 years agoadjust to api change
Chris Lattner [Tue, 30 Jan 2007 23:14:52 +0000 (23:14 +0000)]
adjust to api change

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

17 years agoChange constant folding APIs to take an optional TargetData, and change
Chris Lattner [Tue, 30 Jan 2007 23:13:49 +0000 (23:13 +0000)]
Change constant folding APIs to take an optional TargetData, and change
ConstantFoldInstOperands/ConstantFoldCall to take a pointer to an array
of operands + size, instead of an std::vector.

In some cases, switch to using a SmallVector instead of a vector.
This allows us to get rid of some special case gross code that was there
to avoid the cost of constructing a vector.

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

17 years agoChange constant folding APIs to take an optional TargetData, and change
Chris Lattner [Tue, 30 Jan 2007 23:12:47 +0000 (23:12 +0000)]
Change constant folding APIs to take an optional TargetData, and change
ConstantFoldInstOperands/ConstantFoldCall to take a pointer to an array
of operands + size, instead of an std::vector.

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

17 years agoCombine two tests.
Evan Cheng [Tue, 30 Jan 2007 23:06:22 +0000 (23:06 +0000)]
Combine two tests.

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

17 years agoDuring PEI, if the immediate value of sp + offset is too large (i.e. something
Evan Cheng [Tue, 30 Jan 2007 23:01:46 +0000 (23:01 +0000)]
During PEI, if the immediate value of sp + offset is too large (i.e. something
that would require > 3 instructions to materialize), load the immediate from a
constpool entry.

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

17 years agoremove some bits that are not yet meant to land.
Chris Lattner [Tue, 30 Jan 2007 22:50:32 +0000 (22:50 +0000)]
remove some bits that are not yet meant to land.

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

17 years agoSymbolically evaluate constant expressions like &A[123] - &A[4].f.
Chris Lattner [Tue, 30 Jan 2007 22:32:46 +0000 (22:32 +0000)]
Symbolically evaluate constant expressions like &A[123] - &A[4].f.

This occurs in C++ code like:

#include <iostream>
#include <iterator>
int a[] = { 1, 2, 3, 4, 5 };
int main() {
  using namespace std;
  copy(a, a + sizeof(a)/sizeof(a[0]), ostream_iterator<int>(cout, "\n"));
  return 0;
}

Before we would decide the loop trip count is:
sdiv (i32 sub (i32 ptrtoint (i32* getelementptr ([5 x i32]* @a, i32 0, i32 5) to i32), i32 ptrtoint ([5 x i32]* @a to i32)), i32 4)

Now we decide it is "5".  Amazing.

This code will need to be refactored, but I'm doing that as a separate
commit.

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

17 years ago- Fix codegen for pc relative constant (e.g. JT) in thumb mode:
Evan Cheng [Tue, 30 Jan 2007 20:37:08 +0000 (20:37 +0000)]
- Fix codegen for pc relative constant (e.g. JT) in thumb mode:
        .set PCRELV0, (LJTI1_0_0-(LPCRELL0+4))
LPCRELL0:
        add r1, pc, #PCRELV0
This is not legal since add r1, pc, #c requires the constant be a multiple of 4.
Do the following instead:
        .set PCRELV0, (LJTI1_0_0-(LPCRELL0+4))
LPCRELL0:
        mov r1, #PCRELV0
        add r1, pc

- In thumb mode, it's not possible to use .set generate a pc relative stub
  address. The stub is ARM code which is in a different section from the thumb
  code. Load the value from a constpool instead.
- Some asm printing clean up.

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

17 years agoFor PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid
Reid Spencer [Tue, 30 Jan 2007 20:08:39 +0000 (20:08 +0000)]
For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid
confusion with external linkage types.

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

17 years agoCompaction tables no longer supported, remove its block ID.
Reid Spencer [Tue, 30 Jan 2007 19:37:26 +0000 (19:37 +0000)]
Compaction tables no longer supported, remove its block ID.

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

17 years agoBye, Bye Compaction Tables. The benefit compaction tables provides doesn't
Reid Spencer [Tue, 30 Jan 2007 19:36:46 +0000 (19:36 +0000)]
Bye, Bye Compaction Tables. The benefit compaction tables provides doesn't
outweight its computational costs. This patch removes all compaction
table handling from the bcreader and bcwriter. For the record, here's the
difference betweeen having and not having compaction tables for some tests:

Test             With       Without   Size Chg
Olden/mst       5,602         5,598      +0.1%
viterbi        18,026        17,795      +1.3%
obsequi       162,133       166,663      -2.8%
burg          224,090       228,148      -1.8%
kimwitu++   4,933,263     5,121,159      -3.8%
176.gcc     8,470,424     9,141,539      -7.3%

It seems that it is more beneficial to larger files, but even on the largest
test case we have (176.gcc) it only amounts ot an I/O saving of 7.3%.

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

17 years agoFor PR411:
Reid Spencer [Tue, 30 Jan 2007 16:16:01 +0000 (16:16 +0000)]
For PR411:
Update these tests to not use the same name even though the type of the
value differs. After PR411 hits, type planes will be gone and it will be
illegal for a name to be used twice, regardless of type.

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

17 years agoAdd a gxxcmd variable for the g++ command line used to build llvm.
Reid Spencer [Tue, 30 Jan 2007 16:06:55 +0000 (16:06 +0000)]
Add a gxxcmd variable for the g++ command line used to build llvm.

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

17 years agoCopy and paste bug.
Evan Cheng [Tue, 30 Jan 2007 08:22:33 +0000 (08:22 +0000)]
Copy and paste bug.

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

17 years agoDarwin -static should codegen static ctors / dtors to .constructor / .destructor...
Evan Cheng [Tue, 30 Jan 2007 08:04:53 +0000 (08:04 +0000)]
Darwin -static should codegen static ctors / dtors to .constructor / .destructor sections.

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

17 years agoMisseed thumb jumptable branch.
Evan Cheng [Tue, 30 Jan 2007 08:03:06 +0000 (08:03 +0000)]
Misseed thumb jumptable branch.

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

17 years agoMake the input legal.
Reid Spencer [Tue, 30 Jan 2007 06:32:25 +0000 (06:32 +0000)]
Make the input legal.

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

17 years agoAdd / merge tests.
Evan Cheng [Tue, 30 Jan 2007 03:06:19 +0000 (03:06 +0000)]
Add / merge tests.

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

17 years agoIn thumb mode, round up stack frame size to multiple of 4 since add/sub
Evan Cheng [Tue, 30 Jan 2007 02:57:02 +0000 (02:57 +0000)]
In thumb mode, round up stack frame size to multiple of 4 since add/sub
sp, imm instructions implicitly multiply the offset by 4.

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

17 years agoThumb eliminateFrameIndex fixes.
Evan Cheng [Tue, 30 Jan 2007 02:36:01 +0000 (02:36 +0000)]
Thumb eliminateFrameIndex fixes.

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

17 years agoChange the operand orders to t_addrmode_s* to make it easier to morph
Evan Cheng [Tue, 30 Jan 2007 02:35:32 +0000 (02:35 +0000)]
Change the operand orders to t_addrmode_s* to make it easier to morph
instructions that use these address modes to instructions that use
t_addrmode_sp.

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

17 years ago- In thumb mode, if size of MachineFunction is >= 2048, force LR to be
Evan Cheng [Tue, 30 Jan 2007 01:18:38 +0000 (01:18 +0000)]
- In thumb mode, if size of MachineFunction is >= 2048, force LR to be
  spilled (if it is not already).
- If LR is spilled, use BL to implement far jumps. LR is not used as a GPR
  in thumb mode so it can be clobbered if it is properly spilled / restored
  in prologue / epilogue.
- If LR is force spilled but no far jump has been emitted, try undo'ing the
  spill by:
  push lr -> delete
  pop pc -> bx lr

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

17 years agoUse BL to implement Thumb far jumps.
Evan Cheng [Tue, 30 Jan 2007 01:13:37 +0000 (01:13 +0000)]
Use BL to implement Thumb far jumps.

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

17 years agotest that the 'ir' constraint works.
Chris Lattner [Mon, 29 Jan 2007 23:55:20 +0000 (23:55 +0000)]
test that the 'ir' constraint works.

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

17 years agoFactor GetInstSize() out of constpool island pass.
Evan Cheng [Mon, 29 Jan 2007 23:45:17 +0000 (23:45 +0000)]
Factor GetInstSize() out of constpool island pass.

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

17 years agoadd initial support for handling inline asms with multiple constraints.
Chris Lattner [Mon, 29 Jan 2007 23:45:14 +0000 (23:45 +0000)]
add initial support for handling inline asms with multiple constraints.
This doesn't do the "right thing" but will probably work in most cases.

This implements CodeGen/PowerPC/2007-01-29-lbrx-asm.ll.

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

17 years agonew testcase
Chris Lattner [Mon, 29 Jan 2007 23:45:03 +0000 (23:45 +0000)]
new testcase

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

17 years agoOut of line function.
Jim Laskey [Mon, 29 Jan 2007 23:40:33 +0000 (23:40 +0000)]
Out of line function.

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

17 years agoUse StartPassTimer() and StopPassManager()
Devang Patel [Mon, 29 Jan 2007 23:29:54 +0000 (23:29 +0000)]
Use StartPassTimer() and StopPassManager()

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

17 years agoOnly gather frame info if debug or eh.
Jim Laskey [Mon, 29 Jan 2007 23:20:22 +0000 (23:20 +0000)]
Only gather frame info if debug or eh.

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

17 years ago- Undo previous check-in (i.e. Do not export TimingInfo class through
Devang Patel [Mon, 29 Jan 2007 23:10:37 +0000 (23:10 +0000)]
- Undo previous check-in (i.e. Do not export TimingInfo class through
PassManagers.h).

- Add StopPassTimer() and StartPassTimer() to expose TimingInfo to
CallGraphPassManager

- Use these two APIs in CalLgraphPassManager to measure timings.

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

17 years agoFinish off bug 680, allowing targets to custom lower frame and return
Nate Begeman [Mon, 29 Jan 2007 22:58:52 +0000 (22:58 +0000)]
Finish off bug 680, allowing targets to custom lower frame and return
address nodes.

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

17 years agoWe'd still like to register allocate r2 on darwin before the callee-save
Nate Begeman [Mon, 29 Jan 2007 22:57:48 +0000 (22:57 +0000)]
We'd still like to register allocate r2 on darwin before the callee-save
regs.

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

17 years agorename flag
Jim Laskey [Mon, 29 Jan 2007 22:40:03 +0000 (22:40 +0000)]
rename flag

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

17 years agoComment.
Evan Cheng [Mon, 29 Jan 2007 22:23:02 +0000 (22:23 +0000)]
Comment.

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

17 years agoRemember if LR register has been spilled in this function.
Evan Cheng [Mon, 29 Jan 2007 22:22:24 +0000 (22:22 +0000)]
Remember if LR register has been spilled in this function.

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

17 years agoSave all registers by default, as they can be used to pass parameters
Anton Korobeynikov [Mon, 29 Jan 2007 21:28:01 +0000 (21:28 +0000)]
Save all registers by default, as they can be used to pass parameters
for "inreg" calls

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

17 years agoUpdate some of the llvm in the readme
Nate Begeman [Mon, 29 Jan 2007 21:21:22 +0000 (21:21 +0000)]
Update some of the llvm in the readme

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

17 years agoProperly support cstrings
Nate Begeman [Mon, 29 Jan 2007 21:20:42 +0000 (21:20 +0000)]
Properly support cstrings

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

17 years agoFlag to control exception handling.
Jim Laskey [Mon, 29 Jan 2007 20:48:32 +0000 (20:48 +0000)]
Flag to control exception handling.

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

17 years agoMeasure timings.
Devang Patel [Mon, 29 Jan 2007 20:08:03 +0000 (20:08 +0000)]
Measure timings.

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

17 years agoMove TimingInfo into PassManagers.h so that other libs can use it.
Devang Patel [Mon, 29 Jan 2007 20:06:26 +0000 (20:06 +0000)]
Move TimingInfo into PassManagers.h so that other libs can use it.

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

17 years agoDisable zero landing pads for now.
Jim Laskey [Mon, 29 Jan 2007 20:01:41 +0000 (20:01 +0000)]
Disable zero landing pads for now.

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

17 years agoRegenerate.
Reid Spencer [Mon, 29 Jan 2007 19:08:46 +0000 (19:08 +0000)]
Regenerate.

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

17 years agoFor PR1142:
Reid Spencer [Mon, 29 Jan 2007 19:07:18 +0000 (19:07 +0000)]
For PR1142:
When an unresolved definition is found, check to see if it is only unresolved
because the csretcc was upgraded to the sret param attribute. Such changes
change the function type and lead to unresolved definitions. In such cases, just
cast the function to the type expected by the CallInst. That is, cast to the
version of the function that has the sret param attribute.

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

17 years agoLanding pad-less eh for PPC.
Jim Laskey [Mon, 29 Jan 2007 18:51:14 +0000 (18:51 +0000)]
Landing pad-less eh for PPC.

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

17 years agoUpdate project
Jim Laskey [Mon, 29 Jan 2007 18:45:08 +0000 (18:45 +0000)]
Update project

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

17 years agoRemove tabs.
Reid Spencer [Mon, 29 Jan 2007 17:55:50 +0000 (17:55 +0000)]
Remove tabs.

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

17 years agoImplement use of new IntrinsicLowering interface.
Reid Spencer [Mon, 29 Jan 2007 17:51:02 +0000 (17:51 +0000)]
Implement use of new IntrinsicLowering interface.

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

17 years agoUse TargetData to obtain the correct size of the "size_t" argument for
Reid Spencer [Mon, 29 Jan 2007 17:42:06 +0000 (17:42 +0000)]
Use TargetData to obtain the correct size of the "size_t" argument for
functions like memcpy, memmove and memset. Ensure only one prototype is
used for these functions and that it matches the system definition by
using the appropriate type for the size argument.

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

17 years agoIntrinsicLowering now requires TargetData.
Reid Spencer [Mon, 29 Jan 2007 17:39:50 +0000 (17:39 +0000)]
IntrinsicLowering now requires TargetData.

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

17 years agoUpdate project.
Jim Laskey [Mon, 29 Jan 2007 15:09:35 +0000 (15:09 +0000)]
Update project.

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

17 years agoRegenerate.
Reid Spencer [Mon, 29 Jan 2007 05:41:34 +0000 (05:41 +0000)]
Regenerate.

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

17 years agoUpgrade old csret calling convention into sret parameter attribute.
Reid Spencer [Mon, 29 Jan 2007 05:41:09 +0000 (05:41 +0000)]
Upgrade old csret calling convention into sret parameter attribute.

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

17 years agoUpdate this test case to look for sret parameter attribute not csret cc.
Reid Spencer [Mon, 29 Jan 2007 05:40:02 +0000 (05:40 +0000)]
Update this test case to look for sret parameter attribute not csret cc.

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

17 years agoSimplify names of lattice values. SGTUNE becomes SGT, for example.
Nick Lewycky [Mon, 29 Jan 2007 02:56:54 +0000 (02:56 +0000)]
Simplify names of lattice values. SGTUNE becomes SGT, for example.

Fix initializeConstant, now initializeInt. Fixes major performance
bottleneck.

X == Y || X->DominatedBy(Y) is redundant. Remove the X == Y part.

Fix crasher in makeEqual where getOrInsertNode would add a new constant,
producing an NE relationship between the two members we're trying to make
equal. This now allows us to mark more BBs as unreachable.

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

17 years agoRead from the right place.
Chris Lattner [Mon, 29 Jan 2007 02:18:13 +0000 (02:18 +0000)]
Read from the right place.

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

17 years agoFix PR1139
Chris Lattner [Mon, 29 Jan 2007 00:21:34 +0000 (00:21 +0000)]
Fix PR1139

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

17 years agoMake doxygen happy
Anton Korobeynikov [Mon, 29 Jan 2007 00:09:00 +0000 (00:09 +0000)]
Make doxygen happy

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

17 years agoFor PR1138:
Reid Spencer [Sun, 28 Jan 2007 22:28:00 +0000 (22:28 +0000)]
For PR1138:
Force memcpy to be the 32-bit variant. Since this is only used with
CBE and lli which both target 32-bit machines, this should be okay.

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

17 years agoAdjust a comment to reflect reality.
Reid Spencer [Sun, 28 Jan 2007 22:26:42 +0000 (22:26 +0000)]
Adjust a comment to reflect reality.

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

17 years agoArguments are counting from 1. not from 0. Maybe we should change
Anton Korobeynikov [Sun, 28 Jan 2007 18:01:49 +0000 (18:01 +0000)]
Arguments are counting from 1. not from 0. Maybe we should change
numbering somehow? E.g. make return argument the last?

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

17 years agoMore cleanup
Anton Korobeynikov [Sun, 28 Jan 2007 16:04:40 +0000 (16:04 +0000)]
More cleanup

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

17 years agoDrop CSRET from here too.
Nick Lewycky [Sun, 28 Jan 2007 15:51:15 +0000 (15:51 +0000)]
Drop CSRET from here too.

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

17 years agoFix compile error "jump to case label crosses initialization".
Nick Lewycky [Sun, 28 Jan 2007 15:39:16 +0000 (15:39 +0000)]
Fix compile error "jump to case label crosses initialization".
What compiler are people using that accepts this code?

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

17 years agoGrammar fix
Anton Korobeynikov [Sun, 28 Jan 2007 15:27:21 +0000 (15:27 +0000)]
Grammar fix

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

17 years agoMerge error at my side. Fixed.
Anton Korobeynikov [Sun, 28 Jan 2007 15:25:24 +0000 (15:25 +0000)]
Merge error at my side. Fixed.

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

17 years agoDocument 'inreg' & 'sret'
Anton Korobeynikov [Sun, 28 Jan 2007 14:30:45 +0000 (14:30 +0000)]
Document 'inreg' & 'sret'

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

17 years agoRegenerate
Anton Korobeynikov [Sun, 28 Jan 2007 13:37:39 +0000 (13:37 +0000)]
Regenerate

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

17 years agoDrop CSRET CC
Anton Korobeynikov [Sun, 28 Jan 2007 13:36:18 +0000 (13:36 +0000)]
Drop CSRET CC

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

17 years agoPropagate changes from my local tree. This patch includes:
Anton Korobeynikov [Sun, 28 Jan 2007 13:31:35 +0000 (13:31 +0000)]
Propagate changes from my local tree. This patch includes:
1. New parameter attribute called 'inreg'. It has meaning "place this
parameter in registers, if possible". This is some generalization of
gcc's regparm(n) attribute. It's currently used only in X86-32 backend.
2. Completely rewritten CC handling/lowering code inside X86 backend.
Merged stdcall + c CCs and fastcall + fast CC.
3. Dropped CSRET CC. We cannot add struct return variant for each
target-specific CC (e.g. stdcall + csretcc and so on).
4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in
on first attribute has meaning 'This is hidden pointer to structure
return. Handle it gently'.
5. Fixed small bug in llvm-extract + add new feature to
FunctionExtraction pass, which relinks all internal-linkaged callees
from deleted function to external linkage. This will allow further
linking everything together.

NOTEs: 1. Documentation will be updated soon.
       2. llvm-upgrade should be improved to translate csret => sret.
          Before this, there will be some unexpected test fails.

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

17 years agoThis file has been dead for a long time. Remove it.
Reid Spencer [Sun, 28 Jan 2007 08:04:14 +0000 (08:04 +0000)]
This file has been dead for a long time. Remove it.

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

17 years agoRegenerate.
Reid Spencer [Sun, 28 Jan 2007 00:52:05 +0000 (00:52 +0000)]
Regenerate.

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

17 years agoFor PR1137:
Reid Spencer [Sun, 28 Jan 2007 00:51:40 +0000 (00:51 +0000)]
For PR1137:
When a value is found to have the same name as another, try harder to
disambiguate when its a type plane collapse issue and when it isn't. We
traverse the type to see if it contains an integer. If it does not then
we issue the error because it can't be resulting from integer type planes
collapsing. Otherwise we just rename it, even if that's a bit of overkill.

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

17 years agoTest case for PR1137. This makes sure that we don't get erroneous
Reid Spencer [Sun, 28 Jan 2007 00:45:28 +0000 (00:45 +0000)]
Test case for PR1137. This makes sure that we don't get erroneous
"redefinition" errors that cause the upgrade to fail.

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

17 years agoprovide a definition for uintptr_t
Chris Lattner [Sat, 27 Jan 2007 23:52:33 +0000 (23:52 +0000)]
provide a definition for uintptr_t

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

17 years agoFix test/Transforms/InstCombine/2007-01-27-AndICmp.ll, a miscompilation of
Chris Lattner [Sat, 27 Jan 2007 23:08:34 +0000 (23:08 +0000)]
Fix test/Transforms/InstCombine/2007-01-27-AndICmp.ll, a miscompilation of
Mozilla that Anton tracked down.

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

17 years agoTestcase for an instcombine miscompilation reduced by Anton.
Chris Lattner [Sat, 27 Jan 2007 23:07:12 +0000 (23:07 +0000)]
Testcase for an instcombine miscompilation reduced by Anton.

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

17 years agoUse -f option so test is repeatable.
Reid Spencer [Sat, 27 Jan 2007 21:10:35 +0000 (21:10 +0000)]
Use -f option so test is repeatable.

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

17 years agoAdd a test case for PR411.
Reid Spencer [Sat, 27 Jan 2007 21:09:03 +0000 (21:09 +0000)]
Add a test case for PR411.

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

17 years agoMake this really do nothing.
Reid Spencer [Sat, 27 Jan 2007 21:08:29 +0000 (21:08 +0000)]
Make this really do nothing.

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

17 years agoDescribe the recent changes to the bytecode format for PR761.
Owen Anderson [Sat, 27 Jan 2007 19:23:25 +0000 (19:23 +0000)]
Describe the recent changes to the bytecode format for PR761.

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

17 years agoMake d'tor out-of-line.
Bill Wendling [Sat, 27 Jan 2007 11:40:32 +0000 (11:40 +0000)]
Make d'tor out-of-line.

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

17 years agoMake SmallSet<whatever*, N> faster by transparently implementing it with
Chris Lattner [Sat, 27 Jan 2007 08:20:15 +0000 (08:20 +0000)]
Make SmallSet<whatever*, N> faster by transparently implementing it with
SmallPtrSet.  Some clients will need to use SmallPtrSet directly though if
they need to iterate over the set.

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

17 years agoadd some missing API
Chris Lattner [Sat, 27 Jan 2007 08:19:03 +0000 (08:19 +0000)]
add some missing API

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

17 years agoGive SmallSet a reasonable fallback if it gets large: use an std::set.
Chris Lattner [Sat, 27 Jan 2007 08:14:53 +0000 (08:14 +0000)]
Give SmallSet a reasonable fallback if it gets large: use an std::set.

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

17 years agoimplement SmallPtrSet::erase
Chris Lattner [Sat, 27 Jan 2007 07:59:10 +0000 (07:59 +0000)]
implement SmallPtrSet::erase

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

17 years agoFix a limitation of SmallPtrSet. Before it would assert if the smallsize
Chris Lattner [Sat, 27 Jan 2007 07:52:27 +0000 (07:52 +0000)]
Fix a limitation of SmallPtrSet.  Before it would assert if the smallsize
was not a power of two.  Now it rounds up to the next power of two internally.

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

17 years agoadd some comments on the algorithm
Chris Lattner [Sat, 27 Jan 2007 07:24:51 +0000 (07:24 +0000)]
add some comments on the algorithm

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

17 years agoadd a note
Chris Lattner [Sat, 27 Jan 2007 07:18:32 +0000 (07:18 +0000)]
add a note

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

17 years agoAdd a new SmallSet ADT specialized for pointers.
Chris Lattner [Sat, 27 Jan 2007 07:10:46 +0000 (07:10 +0000)]
Add a new SmallSet ADT specialized for pointers.

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

17 years agoAdd some comments, fix an 80 cols violation.
Reid Spencer [Sat, 27 Jan 2007 04:42:50 +0000 (04:42 +0000)]
Add some comments, fix an 80 cols violation.

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

17 years agoReturn an X86ELFWriterInfo object.
Bill Wendling [Sat, 27 Jan 2007 02:56:16 +0000 (02:56 +0000)]
Return an X86ELFWriterInfo object.

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

17 years agoUse TargetELFWriterInfo class.
Bill Wendling [Sat, 27 Jan 2007 02:55:44 +0000 (02:55 +0000)]
Use TargetELFWriterInfo class.

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

17 years agoAccessor for the TargetELFWriterInfo class object.
Bill Wendling [Sat, 27 Jan 2007 02:55:04 +0000 (02:55 +0000)]
Accessor for the TargetELFWriterInfo class object.

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

17 years agoX86 implementation of the TargetELFWriterInfo class.
Bill Wendling [Sat, 27 Jan 2007 02:54:30 +0000 (02:54 +0000)]
X86 implementation of the TargetELFWriterInfo class.

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

17 years agoThe TargetELFWriterInfo class holds target-specific information for the ELF writer.
Bill Wendling [Sat, 27 Jan 2007 02:53:50 +0000 (02:53 +0000)]
The TargetELFWriterInfo class holds target-specific information for the ELF writer.

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

17 years agoNew entry.
Evan Cheng [Sat, 27 Jan 2007 02:33:22 +0000 (02:33 +0000)]
New entry.

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

17 years agoThumb jumptable support.
Evan Cheng [Sat, 27 Jan 2007 02:29:45 +0000 (02:29 +0000)]
Thumb jumptable support.

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