oota-llvm.git
17 years agoFor PR1187:
Reid Spencer [Thu, 8 Feb 2007 08:47:38 +0000 (08:47 +0000)]
For PR1187:
Always rename, never give a redef error. We could check for collapsed type
planes and generate an error if that's not the cause, but the 99.9999
percentile case will be that its the result of collapsed type planes. So,
rather than doing an expensive check, just rename.

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

17 years agoFor PR1187:
Reid Spencer [Thu, 8 Feb 2007 08:09:36 +0000 (08:09 +0000)]
For PR1187:
Some changes to get the smbd.ll test case working:
1. Move the logic for CSRETCC->sret attribute out of the ResolveDefinitions
   code and into getExistingValue. This resolves it much earlier and works
   in function scope as well.
2. Fix handling of CSRETCC->sret for the store instruction.
3. Rewrite the code for handling renaming to factor in linkage types.
4. Rename a structure filed for a PATypeInfo* so it doesn't get confused
   with a field for a Type*.

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

17 years agoAdd some more interesting cases to this test.
Reid Spencer [Thu, 8 Feb 2007 08:03:46 +0000 (08:03 +0000)]
Add some more interesting cases to this test.

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

17 years agoFor PR1187:
Reid Spencer [Thu, 8 Feb 2007 06:45:02 +0000 (06:45 +0000)]
For PR1187:
Add some interesting CSRETCC upgrade cases.

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

17 years agoFixed comments.
Bill Wendling [Thu, 8 Feb 2007 06:05:08 +0000 (06:05 +0000)]
Fixed comments.

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

17 years agoFixed a long standing spiller bug that's exposed by Thumb:
Evan Cheng [Thu, 8 Feb 2007 06:04:54 +0000 (06:04 +0000)]
Fixed a long standing spiller bug that's exposed by Thumb:

The code sequence before the spiller is something like:
                 = tMOVrr
        %reg1117 = tMOVrr
        %reg1078 = tLSLri %reg1117, 2

The it starts spilling:
        %r0 = tRestore <fi#5>, 0
        %r1 = tRestore <fi#7>, 0
        %r1 = tMOVrr %r1<kill>
        tSpill %r1, <fi#5>, 0
        %reg1078 = tLSLri %reg1117, 2

It restores the value while processing the first tMOVrr. At this point, the
spiller remembers fi#5 is available in %r0. Next it processes the second move.
It restores the source before the move and spills the result afterwards. The
move becomes a noop and is deleted. However, a spill has been inserted and that
should invalidate reuse of %r0 for fi#5 and add reuse of %r1 for fi#5.
Therefore, %reg1117 (which is also assigned fi#5) should get %r1, not %r0.

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

17 years agoNew testcase for PR947
Chris Lattner [Thu, 8 Feb 2007 04:34:03 +0000 (04:34 +0000)]
New testcase for PR947

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

17 years agollvm-gcc3 is gone
Chris Lattner [Thu, 8 Feb 2007 04:31:15 +0000 (04:31 +0000)]
llvm-gcc3 is gone

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

17 years agoAvoid assert() in lto. Let linker handle all failures. Use LTO_WRITE_FAILURE
Bill Wendling [Thu, 8 Feb 2007 01:48:28 +0000 (01:48 +0000)]
Avoid assert() in lto. Let linker handle all failures. Use LTO_WRITE_FAILURE
instead of LTO_UNKNOWN.

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

17 years agoThe new version of how to add passes to emit files. We explicitly call a
Bill Wendling [Thu, 8 Feb 2007 01:41:07 +0000 (01:41 +0000)]
The new version of how to add passes to emit files. We explicitly call a
function to add the file writers between calls to add the passes.

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

17 years agoMoved the MachOWriter and ELFWriter out of the Target/* files. Placed the
Bill Wendling [Thu, 8 Feb 2007 01:39:44 +0000 (01:39 +0000)]
Moved the MachOWriter and ELFWriter out of the Target/* files. Placed the
definition of it into the CodeGen library. This is so that a backend doesn't
necessarily add in these writers if it doesn't use them (like in the lli
program).

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

17 years agoAdded new method to add a "simple" code emitter. That is, to only add
Bill Wendling [Thu, 8 Feb 2007 01:38:33 +0000 (01:38 +0000)]
Added new method to add a "simple" code emitter. That is, to only add
the code emitter and not set variables.

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

17 years agoSplit the addPassesToEmitFile method up into two. This is so that we can
Bill Wendling [Thu, 8 Feb 2007 01:36:53 +0000 (01:36 +0000)]
Split the addPassesToEmitFile method up into two. This is so that we can
do some common stuff, then on our own add an object file writer (by calling
a concrete function), and then do some finishing stuff, if need be.

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

17 years agoAdd function to create a file writer.
Bill Wendling [Thu, 8 Feb 2007 01:35:27 +0000 (01:35 +0000)]
Add function to create a file writer.

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

17 years agoAdded new method to finish up the addition of passes to emit files. This
Bill Wendling [Thu, 8 Feb 2007 01:34:45 +0000 (01:34 +0000)]
Added new method to finish up the addition of passes to emit files. This
allows us to split that method into two so that we can optionally call a
concrete function to add a writer. Removed moribund addObjectWriter()
method.

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

17 years agoDead files. Functionality has been taken over by the Add*Writer functions.
Bill Wendling [Thu, 8 Feb 2007 01:32:51 +0000 (01:32 +0000)]
Dead files. Functionality has been taken over by the Add*Writer functions.

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

17 years agoDeclarations for functions that create different file writers.
Bill Wendling [Thu, 8 Feb 2007 01:31:38 +0000 (01:31 +0000)]
Declarations for functions that create different file writers.

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

17 years agoMoved from include/llvm/CodeGen to lib/CodeGen.
Bill Wendling [Thu, 8 Feb 2007 01:30:50 +0000 (01:30 +0000)]
Moved from include/llvm/CodeGen to lib/CodeGen.

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

17 years agoFor PR1188:
Reid Spencer [Thu, 8 Feb 2007 00:29:31 +0000 (00:29 +0000)]
For PR1188:
Compute BitMask correctly.

Patch by Leo (wenwenti@hotmail.com).

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

17 years agoRegenerate for recent changes.
Reid Spencer [Thu, 8 Feb 2007 00:21:40 +0000 (00:21 +0000)]
Regenerate for recent changes.

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

17 years agoFor PR1187:
Reid Spencer [Thu, 8 Feb 2007 00:21:06 +0000 (00:21 +0000)]
For PR1187:
When a naming conflict arises, allow internal linkage functions to be
renamed without warning or error.

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

17 years agoFor PR1187:
Reid Spencer [Thu, 8 Feb 2007 00:19:40 +0000 (00:19 +0000)]
For PR1187:
Allow @ before identifer names. Recognize the i1, i8, i16, i32, i64 keywords
as type names corresponding to bool, ubyte, ushort, uint, and ulong
respectively. While these aren't LLVM 1.9 constructs, permitting the syntax
allows post-1.9 assembly files to be upgraded.

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

17 years agomove archive-specific stuff out of bcreader into archive library.
Chris Lattner [Wed, 7 Feb 2007 23:53:17 +0000 (23:53 +0000)]
move archive-specific stuff out of bcreader into archive library.

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

17 years agomove an llvmc-specific function out of the bcreader into llvmc.
Chris Lattner [Wed, 7 Feb 2007 23:48:32 +0000 (23:48 +0000)]
move an llvmc-specific function out of the bcreader into llvmc.

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

17 years agomove AnalyzeBytecodeFile out of ReaderWrappers.cpp into Analyzer.cpp. Now
Chris Lattner [Wed, 7 Feb 2007 23:46:55 +0000 (23:46 +0000)]
move AnalyzeBytecodeFile out of ReaderWrappers.cpp into Analyzer.cpp.  Now
lli doesn't link in Analyzer.cpp.

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

17 years agoFor PR1187:
Reid Spencer [Wed, 7 Feb 2007 23:45:51 +0000 (23:45 +0000)]
For PR1187:
Add a test to ensure that i1, i8, i16, i32 and i64 are recognized by the
lexer and vars using them will be renamed appropriately.

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

17 years agoFor PR1187:
Reid Spencer [Wed, 7 Feb 2007 23:41:10 +0000 (23:41 +0000)]
For PR1187:
Add a test case to test rename of internal linkage functions with the same
name, without an error or warning.

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

17 years agonew testcase for nested functions
Chris Lattner [Wed, 7 Feb 2007 23:28:08 +0000 (23:28 +0000)]
new testcase for nested functions

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

17 years agoThis really only affects pointers in high memory, and only llvm 1.9, but make a regre...
Andrew Lenharth [Wed, 7 Feb 2007 22:23:47 +0000 (22:23 +0000)]
This really only affects pointers in high memory, and only llvm 1.9, but make a regression for it anyway

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

17 years agoisLowRegister() expects input is a physical register.
Evan Cheng [Wed, 7 Feb 2007 21:44:33 +0000 (21:44 +0000)]
isLowRegister() expects input is a physical register.

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

17 years agopush bytecode decompressor out through APIs. Now the bytecode reader
Chris Lattner [Wed, 7 Feb 2007 21:41:02 +0000 (21:41 +0000)]
push bytecode decompressor out through APIs.  Now the bytecode reader
api's look like this:

ModuleProvider *getBytecodeModuleProvider(
  const std::string &Filename,  ///< Name of file to be read
  BCDecompressor_t *BCDC = Compressor::decompressToNewBuffer,
  std::string* ErrMsg = 0,      ///< Optional error message holder
  BytecodeHandler* H = 0        ///< Optional handler for reader events
);

This is ugly, but allows a client to say:

  getBytecodeModuleProvider("foo", 0);

If they do this, there is no dependency on the compression libraries, saving
codesize.

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

17 years agoRename.
Evan Cheng [Wed, 7 Feb 2007 21:24:09 +0000 (21:24 +0000)]
Rename.

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

17 years agoIf sp offset will be materialized in a register. Clear the offset field of str /...
Evan Cheng [Wed, 7 Feb 2007 21:19:58 +0000 (21:19 +0000)]
If sp offset will be materialized in a register. Clear the offset field of str / ldr.

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

17 years agoGet rid of references to iostream.
Evan Cheng [Wed, 7 Feb 2007 21:18:32 +0000 (21:18 +0000)]
Get rid of references to iostream.

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

17 years agoAutomatically generating intrinsic declarations from Dan Gohman. Modified
Jim Laskey [Wed, 7 Feb 2007 20:38:26 +0000 (20:38 +0000)]
Automatically generating intrinsic declarations from Dan Gohman.  Modified
to construct FunctionType in separate function, and, have getDeclaration
return a Function instead of a Constant.

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

17 years agoMove compressor out of the core Reader.cpp file.
Chris Lattner [Wed, 7 Feb 2007 19:49:01 +0000 (19:49 +0000)]
Move compressor out of the core Reader.cpp file.

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

17 years agoDo not drop transferred last uses on the floor.
Devang Patel [Wed, 7 Feb 2007 19:37:53 +0000 (19:37 +0000)]
Do not drop transferred last uses on the floor.
Use handleLastUserOverflow().

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

17 years agoFix Transforms/DeadArgElim/2007-02-07-FuncRename.ll, fallout from PR411.
Chris Lattner [Wed, 7 Feb 2007 19:31:33 +0000 (19:31 +0000)]
Fix Transforms/DeadArgElim/2007-02-07-FuncRename.ll, fallout from PR411.
This happened because deadargelim now causes VMCore to auto-rename every
function that it hacks arguments out of.  Because it hacks arguments out of
functions in a non-deterministic order, this caused the resultant numbering
to be nondet.  The fix is to just be careful to not rename functions!

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

17 years agoTestcase for a bug responsible for GCC bootstrap failure, fallout from PR411.
Chris Lattner [Wed, 7 Feb 2007 19:28:52 +0000 (19:28 +0000)]
Testcase for a bug responsible for GCC bootstrap failure, fallout from PR411.

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

17 years agoMake the cleaning of BUILT_SOURCES be a "clean-all" target item, not a
Reid Spencer [Wed, 7 Feb 2007 19:13:19 +0000 (19:13 +0000)]
Make the cleaning of BUILT_SOURCES be a "clean-all" target item, not a
"clean" target item. This gets around having the built sources disappear
when only one build mode wants to be cleaned. With the "clean-all" target,
all build modes are cleaned so it also makes sense to clean out the built
sources at that point.

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

17 years agoFix build error.
Lauro Ramos Venancio [Wed, 7 Feb 2007 16:59:17 +0000 (16:59 +0000)]
Fix build error.
include/llvm/ADT/APInt.h:326: error: â\80\98assertâ\80\99 was not declared in this scope

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

17 years agoNew test case.
Evan Cheng [Wed, 7 Feb 2007 09:24:03 +0000 (09:24 +0000)]
New test case.

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

17 years agoNew entry.
Evan Cheng [Wed, 7 Feb 2007 09:22:15 +0000 (09:22 +0000)]
New entry.

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

17 years agoIn thumb mode, R3 is reserved, but it can be live in to the function. If
Evan Cheng [Wed, 7 Feb 2007 09:17:36 +0000 (09:17 +0000)]
In thumb mode, R3 is reserved, but it can be live in to the function. If
that is the case, whenever we use it as a scratch register, save it to R12
first and then restore it after the use.
This is a temporary and truly horrible workaround!

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

17 years agoUpdate
Evan Cheng [Wed, 7 Feb 2007 08:37:57 +0000 (08:37 +0000)]
Update

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

17 years ago- If fp (r7) is used to reference stack objects, use [r, r] address mode.
Evan Cheng [Wed, 7 Feb 2007 08:37:31 +0000 (08:37 +0000)]
- If fp (r7) is used to reference stack objects, use [r, r] address mode.
- If there is a dynamic alloca, in the epilogue, restore the value of sp
  using r7 - offset.
- Other bug fixes.

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

17 years agoremove dead ivars.
Chris Lattner [Wed, 7 Feb 2007 07:33:02 +0000 (07:33 +0000)]
remove dead ivars.

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

17 years agoremove dead ivars, thanks to Reid for noticing this!
Chris Lattner [Wed, 7 Feb 2007 07:19:19 +0000 (07:19 +0000)]
remove dead ivars, thanks to Reid for noticing this!

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

17 years agoremove the handleVBR32/handleVBR64 callbacks. They are very fine-grained.
Chris Lattner [Wed, 7 Feb 2007 06:53:02 +0000 (06:53 +0000)]
remove the handleVBR32/handleVBR64 callbacks.  They are very fine-grained.

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

17 years agoconstants can't be in the symtab anymore
Chris Lattner [Wed, 7 Feb 2007 06:28:48 +0000 (06:28 +0000)]
constants can't be in the symtab anymore

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

17 years agoupdate comment.
Chris Lattner [Wed, 7 Feb 2007 06:25:36 +0000 (06:25 +0000)]
update comment.

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

17 years agoremove some obsolete SymbolTable methods. These docs need to be updated
Chris Lattner [Wed, 7 Feb 2007 06:24:17 +0000 (06:24 +0000)]
remove some obsolete SymbolTable methods.  These docs need to be updated
now that PR411 landed

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

17 years agoshrink vmcore by moving symbol table stripping support out of VMCore into
Chris Lattner [Wed, 7 Feb 2007 06:22:45 +0000 (06:22 +0000)]
shrink vmcore by moving symbol table stripping support out of VMCore into
the one IPO pass that uses it.

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

17 years agoAs Chris suggested, fixed some problems. (This is the first part)
Zhou Sheng [Wed, 7 Feb 2007 06:14:53 +0000 (06:14 +0000)]
As Chris suggested, fixed some problems. (This is the first part)

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

17 years agoeliminate ValueSymbolTable::rename, it has no advantage over using remove+insert.
Chris Lattner [Wed, 7 Feb 2007 06:13:49 +0000 (06:13 +0000)]
eliminate ValueSymbolTable::rename, it has no advantage over using remove+insert.
Make insert/remove assert if used incorrectly instead of returning a bool.

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

17 years agoMake SymbolTable::insert, SymbolTable::remove and SymbolTable::rename private.
Chris Lattner [Wed, 7 Feb 2007 06:06:24 +0000 (06:06 +0000)]
Make SymbolTable::insert, SymbolTable::remove and SymbolTable::rename private.

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

17 years agoAs Chris suggested, fixed some problems. (This is the first part.)
Zhou Sheng [Wed, 7 Feb 2007 05:58:38 +0000 (05:58 +0000)]
As Chris suggested, fixed some problems. (This is the first part.)

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

17 years agospeed up conflict handling.
Chris Lattner [Wed, 7 Feb 2007 05:52:51 +0000 (05:52 +0000)]
speed up conflict handling.

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

17 years agoFix a fixme by correctly calculating preferred alignments for functions,
Nate Begeman [Wed, 7 Feb 2007 05:47:16 +0000 (05:47 +0000)]
Fix a fixme by correctly calculating preferred alignments for functions,
based on the alignment of the symbol and the target data's preferred align
for that type.

Also, rename some arguments for consistency.

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

17 years agoEliminate the O(n) version of TypeSymbolTable::remove, it is dead. When
Chris Lattner [Wed, 7 Feb 2007 05:35:58 +0000 (05:35 +0000)]
Eliminate the O(n) version of TypeSymbolTable::remove, it is dead.  When
inserting a type into the type symbol table, only compute unique name if not
in symtab already.

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

17 years agoTypeSymbolTable::rename is dead, remove it
Chris Lattner [Wed, 7 Feb 2007 05:29:34 +0000 (05:29 +0000)]
TypeSymbolTable::rename is dead, remove it

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

17 years agoEliminate a bunch of work from ValueSymbolTable::insert for the common case
Chris Lattner [Wed, 7 Feb 2007 05:22:49 +0000 (05:22 +0000)]
Eliminate a bunch of work from ValueSymbolTable::insert for the common case
where a symbol name doesn't conflict.  This speeds up bc reading 16% on 176.gcc!

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

17 years agoparse constantexpr arguments into a smallvector: 1.5% speedup reading 176.gcc
Chris Lattner [Wed, 7 Feb 2007 05:15:28 +0000 (05:15 +0000)]
parse constantexpr arguments into a smallvector: 1.5% speedup reading 176.gcc

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

17 years agoeliminate std::vector's from the bchandler interface
Chris Lattner [Wed, 7 Feb 2007 05:09:50 +0000 (05:09 +0000)]
eliminate std::vector's from the bchandler interface

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

17 years agoEliminate std::vectors from the bcanalyzer interface.
Chris Lattner [Wed, 7 Feb 2007 05:08:39 +0000 (05:08 +0000)]
Eliminate std::vectors from the bcanalyzer interface.

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

17 years agoadd an option for timing bc file reading.
Chris Lattner [Wed, 7 Feb 2007 04:39:35 +0000 (04:39 +0000)]
add an option for timing bc file reading.

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

17 years agoRemove a spurious ;
Reid Spencer [Wed, 7 Feb 2007 03:29:29 +0000 (03:29 +0000)]
Remove a spurious ;

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

17 years agoeliminateFrameIndex() is even more complicated if frame ptr is used instead of SP...
Evan Cheng [Wed, 7 Feb 2007 02:44:23 +0000 (02:44 +0000)]
eliminateFrameIndex() is even more complicated if frame ptr is used instead of SP when there are dynamic alloca's.

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

17 years agoredesign the primary datastructure used by mem2reg to eliminate an
Chris Lattner [Wed, 7 Feb 2007 01:15:04 +0000 (01:15 +0000)]
redesign the primary datastructure used by mem2reg to eliminate an
std::map of std::vector's (ouch!).  This speeds up mem2reg by 10% on 176.gcc.

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

17 years agodo not let the table fill up with tombstones.
Chris Lattner [Wed, 7 Feb 2007 01:11:25 +0000 (01:11 +0000)]
do not let the table fill up with tombstones.

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

17 years agoFix a really subtle bug where the entire hash table could fill with
Chris Lattner [Wed, 7 Feb 2007 00:55:59 +0000 (00:55 +0000)]
Fix a really subtle bug where the entire hash table could fill with
tombstones, causing subsequent insertions to infinitely loop.

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

17 years agoSpill / restore should avoid modifying the condition register.
Evan Cheng [Wed, 7 Feb 2007 00:06:56 +0000 (00:06 +0000)]
Spill / restore should avoid modifying the condition register.

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

17 years agoTwo fixes:
Chris Lattner [Tue, 6 Feb 2007 19:06:38 +0000 (19:06 +0000)]
Two fixes:
1. Memset takes an i32 for the value to set, not i8.  This was causing GCC to
   ICE all over the place (PR1183).
2. memcpy/memmove were not properly zext/trunc'ing the size in some cases.

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

17 years agoDocument the LINK_COMPONENTS and NO_INSTALL variables.
Reid Spencer [Tue, 6 Feb 2007 19:00:40 +0000 (19:00 +0000)]
Document the LINK_COMPONENTS and NO_INSTALL variables.

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

17 years agoImplement the NO_INSTALL feature. Setting this variable to any value in
Reid Spencer [Tue, 6 Feb 2007 18:53:14 +0000 (18:53 +0000)]
Implement the NO_INSTALL feature. Setting this variable to any value in
a directory's Makefile will prevent the build products from that directory
from being installed. This is useful for tools and libraries that are
only useful as part of the build process.

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

17 years agoSet the new NO_INSTALL flag for build-only tools.
Reid Spencer [Tue, 6 Feb 2007 18:51:28 +0000 (18:51 +0000)]
Set the new NO_INSTALL flag for build-only tools.

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

17 years agoError check and eliminate unnecessary value.
Jim Laskey [Tue, 6 Feb 2007 18:30:58 +0000 (18:30 +0000)]
Error check and eliminate unnecessary value.

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

17 years agoRegenerate.
Jim Laskey [Tue, 6 Feb 2007 18:20:07 +0000 (18:20 +0000)]
Regenerate.

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

17 years agoDeemed too cute to live.
Jim Laskey [Tue, 6 Feb 2007 18:19:44 +0000 (18:19 +0000)]
Deemed too cute to live.

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

17 years agoRegenerate.
Jim Laskey [Tue, 6 Feb 2007 18:03:31 +0000 (18:03 +0000)]
Regenerate.

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

17 years agoSupport var arg intrinsics.
Jim Laskey [Tue, 6 Feb 2007 18:02:54 +0000 (18:02 +0000)]
Support var arg intrinsics.

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

17 years agoFix build error.
Lauro Ramos Venancio [Tue, 6 Feb 2007 14:59:28 +0000 (14:59 +0000)]
Fix build error.
UniqueVector.h:66: error: â\80\98assertâ\80\99 was not declared in this scope

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

17 years agoSelect add FI, c correctly.
Evan Cheng [Tue, 6 Feb 2007 09:11:20 +0000 (09:11 +0000)]
Select add FI, c correctly.

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

17 years agoAdd a DYNAMIC_STACKALLOC test case.
Evan Cheng [Tue, 6 Feb 2007 07:18:27 +0000 (07:18 +0000)]
Add a DYNAMIC_STACKALLOC test case.

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

17 years agofoldMemoryOperand() cannot fold tMOVrr sp into load / store in thumb mode. tLDRspi...
Evan Cheng [Tue, 6 Feb 2007 06:13:29 +0000 (06:13 +0000)]
foldMemoryOperand() cannot fold tMOVrr sp into load / store in thumb mode. tLDRspi / tSTRspi cannot target / store high registers.

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

17 years agoFix PR1181 and CodeGen/CBackend/2007-02-05-memset.ll
Chris Lattner [Tue, 6 Feb 2007 06:07:51 +0000 (06:07 +0000)]
Fix PR1181 and CodeGen/CBackend/2007-02-05-memset.ll

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

17 years agotestcase for pr1181
Chris Lattner [Tue, 6 Feb 2007 06:07:34 +0000 (06:07 +0000)]
testcase for pr1181

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

17 years agoAs Reid suggested, fixed some problems.
Zhou Sheng [Tue, 6 Feb 2007 06:04:53 +0000 (06:04 +0000)]
As Reid suggested, fixed some problems.

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

17 years agoAs Reid suggested, fixed some problems.
Zhou Sheng [Tue, 6 Feb 2007 05:59:47 +0000 (05:59 +0000)]
As Reid suggested, fixed some problems.

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

17 years agoDisable this for now.
Chris Lattner [Tue, 6 Feb 2007 05:38:37 +0000 (05:38 +0000)]
Disable this for now.

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

17 years agoAdd a class APInt to represent arbitrary precision constant integral values.
Zhou Sheng [Tue, 6 Feb 2007 03:00:16 +0000 (03:00 +0000)]
Add a class APInt to represent arbitrary precision constant integral values.
It is a functional replacement for common case integer type like "unsigned",
"uint64_t", but also allows non-byte-width integer type and large integer
value types such as 3-bits, 15-bits, or more than 64-bits of precision. For
more details, see pr1043.

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

17 years agoFix Transforms/ConstProp/2007-02-05-BitCast.ll
Chris Lattner [Tue, 6 Feb 2007 02:22:56 +0000 (02:22 +0000)]
Fix Transforms/ConstProp/2007-02-05-BitCast.ll

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

17 years agoTestcase for miscompilation
Chris Lattner [Tue, 6 Feb 2007 02:22:37 +0000 (02:22 +0000)]
Testcase for miscompilation

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

17 years agoOops, swap this. This fixes a regression I introduced in the ARM backend.
Chris Lattner [Tue, 6 Feb 2007 01:56:31 +0000 (01:56 +0000)]
Oops, swap this.  This fixes a regression I introduced in the ARM backend.

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

17 years agoeliminateFrameIndex() bug when frame pointer is used as base register.
Evan Cheng [Tue, 6 Feb 2007 00:23:31 +0000 (00:23 +0000)]
eliminateFrameIndex() bug when frame pointer is used as base register.

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

17 years ago- Store val, [sp, c] must be selected to tSTRsp.
Evan Cheng [Tue, 6 Feb 2007 00:22:06 +0000 (00:22 +0000)]
- Store val, [sp, c] must be selected to tSTRsp.
- If c does not fit in the offset field, materialize sp + c into a register
  using tADDhirr.

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

17 years agoAlthough targets are not required to support integers > 64bits, TargetData
Reid Spencer [Mon, 5 Feb 2007 23:51:43 +0000 (23:51 +0000)]
Although targets are not required to support integers > 64bits, TargetData
must in order for backends that do want to support large integer types to be
able to function. Consequently, don't assert if the bitwidth > 64 bits
when computing the size and alignment. Instead, compute the size by rounding
up to the next even number of bytes for the size. Compute the alignment
as the same as the LongABIAlignment. These provide reasonable defaults
that the target can override.

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

17 years agoA value of 64 or fewer bits is valid if the ConstantInt has more then 64 bits.
Reid Spencer [Mon, 5 Feb 2007 23:47:56 +0000 (23:47 +0000)]
A value of 64 or fewer bits is valid if the ConstantInt has more then 64 bits.

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

17 years agoMake classes in anonymous namespaces use VISIBILITY_HIDDEN to help reduce
Reid Spencer [Mon, 5 Feb 2007 23:42:17 +0000 (23:42 +0000)]
Make classes in anonymous namespaces use VISIBILITY_HIDDEN to help reduce
LLVM's footprint and speed up linking.

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

17 years agoWith the last change, we no longer need both directions of mapping from
Chris Lattner [Mon, 5 Feb 2007 23:37:20 +0000 (23:37 +0000)]
With the last change, we no longer need both directions of mapping from
BBNumbers.  Instead of using a bi-directional mapping, just use a single
densemap.  This speeds up mem2reg on 176.gcc by 8%, from  1.3489 to
1.2485s.

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