Zhou Sheng [Fri, 9 Feb 2007 07:48:24 +0000 (07:48 +0000)]
Eliminates friend function declaration inside APInt, instead, adds public
methods as those global function's internal implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34083
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 9 Feb 2007 04:49:46 +0000 (04:49 +0000)]
Add ppc-specific test for better i64 compare codegen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34082
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 9 Feb 2007 04:19:54 +0000 (04:19 +0000)]
Remove fixed item
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34081
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 9 Feb 2007 04:15:08 +0000 (04:15 +0000)]
Fix some formatting mistakes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34080
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 9 Feb 2007 04:12:51 +0000 (04:12 +0000)]
Merge gccld documentation in here. gccld will go away soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34079
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 9 Feb 2007 03:15:18 +0000 (03:15 +0000)]
Put in a disabled template for when gccld is replaced by the shell script.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34076
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 9 Feb 2007 03:12:21 +0000 (03:12 +0000)]
Get the right warning message.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34075
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 9 Feb 2007 03:09:26 +0000 (03:09 +0000)]
New shell script to replace gccld, eventually.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34074
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 9 Feb 2007 03:08:06 +0000 (03:08 +0000)]
Clean up error handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34073
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 8 Feb 2007 23:53:38 +0000 (23:53 +0000)]
This is done.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34072
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 8 Feb 2007 22:27:55 +0000 (22:27 +0000)]
i64 setcc tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34067
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 8 Feb 2007 22:16:19 +0000 (22:16 +0000)]
Make use of TLI.SimplifySetCC() in LegalizeSetCCOperands().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34066
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 8 Feb 2007 22:13:59 +0000 (22:13 +0000)]
Move SimplifySetCC to TargetLowering and allow it to be shared with legalizer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34065
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Feb 2007 19:20:57 +0000 (19:20 +0000)]
Rename CStringMap -> StringMap, since it now supports nul characters in the
strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34064
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Feb 2007 19:14:21 +0000 (19:14 +0000)]
update this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34063
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Feb 2007 19:08:37 +0000 (19:08 +0000)]
Allow cstringmap to contain strings with nul characters in them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34062
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 8 Feb 2007 19:03:11 +0000 (19:03 +0000)]
For PR1153:
Copy a couple more missing options from gccld to llvm-ld.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34061
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 8 Feb 2007 18:13:59 +0000 (18:13 +0000)]
For PR1153:
Make llvm-ld more gccld-like by having it run the same set of passes. The
delta was probably due to lack of llvm-ld being maintained. Just another
reason to have only one optimizing linker in in LLVM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34058
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Thu, 8 Feb 2007 17:37:41 +0000 (17:37 +0000)]
return addresses, those I already have
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34056
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 8 Feb 2007 17:00:55 +0000 (17:00 +0000)]
Describe llvm/test more accurately given recent changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34055
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhou Sheng [Thu, 8 Feb 2007 16:45:48 +0000 (16:45 +0000)]
Switched this file on accidently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34054
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhou Sheng [Thu, 8 Feb 2007 14:35:19 +0000 (14:35 +0000)]
As Chris and Reid suggested, remove "isSigned" field from APInt, instead,
add some signed/unsigned arithmetic operation functions into APInt.h to
handle the signed/unsigned issue. These functions will be defined inside a
namespace "APIntOps" which is inside llvm namespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34053
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 8 Feb 2007 09:10:22 +0000 (09:10 +0000)]
New test cases for PR1187
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34052
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 8 Feb 2007 09:09:36 +0000 (09:09 +0000)]
Make this legal input.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34051
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 8 Feb 2007 09:08:52 +0000 (09:08 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34050
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 8 Feb 2007 09:08:23 +0000 (09:08 +0000)]
Rename a field so there's less confusion between fields of the same name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34049
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 8 Feb 2007 09:07:25 +0000 (09:07 +0000)]
For PR1187:
Rename function scope names that conflict with basic block names.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34048
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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