Commit Graph

15375 Commits

Author SHA1 Message Date
Reid Spencer
a455cca62f Don't bother with a re-linked library, ensure archive library is built.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17773 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 22:03:14 +00:00
Reid Spencer
8bbb17abe6 *Adjust prototypes for public interface. *Rewrite LinkInArchive to use symbol tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17772 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 22:02:27 +00:00
Reid Spencer
a70d84d40a Simplify compression code by using the high level interface to the Compressor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17771 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 22:01:41 +00:00
Reid Spencer
565ff3d448 Add wrappers to get defined symbols from bytecode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17770 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 22:00:48 +00:00
Reid Spencer
d3539b8a5e Simplify handling of decompression
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17769 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 22:00:09 +00:00
Reid Spencer
61aaf2e0af Simplify decompression code by using the high level interface to the Compressor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17768 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:59:21 +00:00
Reid Spencer
f9d7a51c44 Completely rewritten to allow reading of archives and symbol table lookup in a more efficient manner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17767 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:58:33 +00:00
Reid Spencer
bc9fc845a0 Implementation declarations for Archive
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17766 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:57:46 +00:00
Reid Spencer
cf6afc6239 First working version
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17765 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:56:59 +00:00
Reid Spencer
5544b5e50b Add the Archive library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17764 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:55:27 +00:00
Reid Spencer
9d969b8328 Add the Linker library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17763 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:54:41 +00:00
Reid Spencer
f31c7ff957 *Make naming convention consistent.*Add convertion to/from Unix Epoch time.*Add ability to convert to readable string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17762 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:53:55 +00:00
Reid Spencer
00e9ca7148 Make the remove*OnSignal functions deal with Paths not strings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17761 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:53:09 +00:00
Reid Spencer
c5fe25314c *Put the StatusInfo type in the right section. *Provide the ability to rename a file.*Provide the ability to get/set stat(2) information.*Provide the ability to identify LLVM file types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17760 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:52:22 +00:00
Reid Spencer
8d2a8c3115 Allow explicit closing of the MappedFile, before destruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17759 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:51:36 +00:00
Reid Spencer
f44715638b Linker is its own module now. Moved to include/llvm/Linker.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17758 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:50:50 +00:00
Reid Spencer
14ef01405c Add higher level interface to simplify use of Compressor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17757 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:50:00 +00:00
Reid Spencer
cc08ee507f Add the MoreHelp function pointer. If non-null, this specifies a function to be called to print out additional help information
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17756 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:49:13 +00:00
Reid Spencer
33e2fcd6f5 Remove ReadArchiveFile (functionality moved to Archive.h). Add an alternate form for GetBytecodeSymbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17755 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:48:27 +00:00
Reid Spencer
9461bd7996 Complete rewrite to get first working version.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17754 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:47:41 +00:00
Reid Spencer
5991dcb5d8 Add a command for using llvm-ar correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17753 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:46:55 +00:00
Reid Spencer
56ae5185ae Interface to Linker (revised/expanded from Support/Linker.h)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17752 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:46:08 +00:00
Misha Brukman
3c8f2c66e5 GhostLinkage not allowed in LLVM AsmWriter, either
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17751 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:04:34 +00:00
Misha Brukman
d2691fdf18 GhostLinkage should not reach asm printing stage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17750 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:03:49 +00:00
Misha Brukman
3a8a42a9b4 Handle GhostLinkage (should not ever reach the assembly printing stage!)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17749 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:03:30 +00:00
Misha Brukman
a3e6ad62f3 Mark an unmaterialized function as having GhostLinkage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17748 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:02:55 +00:00
Misha Brukman
f2cdf5e934 Add GhostLinkage for marking functions before they're fully materialized
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17747 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:02:28 +00:00
Chris Lattner
bd38edfe23 If a global is just loaded and restored, realize that it is not changing
value.  This allows us to turn more globals into constants and eliminate them.
This patch implements GlobalOpt/load-store-global.llx.

Note that this patch speeds up 255.vortex from:

Output/255.vortex.out-cbe.time:program 7.640000
Output/255.vortex.out-llc.time:program 9.810000

to:

Output/255.vortex.out-cbe.time:program 7.250000
Output/255.vortex.out-llc.time:program 9.490000

Which isn't bad at all!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17746 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 20:50:30 +00:00
Chris Lattner
826c47ea5b New testcase. Believe it or not, this happens a LOT in vortex
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17745 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 20:41:39 +00:00
Misha Brukman
fc256599b3 Fix build on Linux/PowerPC64 using SuSE GCC (#undef PPC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17744 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 20:34:01 +00:00
Reid Spencer
7d0a022489 Moved from include/llvm/Support/Linker.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17743 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 20:21:58 +00:00
Reid Spencer
9577667822 Moved to lib/Bytecode/Archive in preparation for re-write.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17742 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 19:59:40 +00:00
Chris Lattner
b58934484b This optimization makes MANY phi nodes that all have the same incoming value.
If this happens, detect it early instead of relying on instcombine to notice
it later.  This can be a big speedup, because PHI nodes can have many
incoming values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17741 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 19:29:34 +00:00
Chris Lattner
bac32866a7 Implement instcombine/phi.ll:test6 - pulling operations through PHI nodes.
This exposes subsequent optimization possiblities and reduces code size.
This triggers 1423 times in spec.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17740 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 19:13:23 +00:00
Chris Lattner
6e54db0852 New testcase: the phi can be eliminated if the casts are sucked into it.
Note that this reduces code size anyway (as well as making further
optimizations simpler) so it's always a win.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17739 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 19:12:17 +00:00
Chris Lattner
e58b25490b Fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17738 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 17:54:58 +00:00
Chris Lattner
56ef3aebd8 add a testcase, which we already handle
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17737 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 17:54:27 +00:00
Chris Lattner
711b3402aa Transform this:
%X = alloca ...
  %Y = alloca ...
    X == Y

into false.  This allows us to simplify some stuff in eon (and probably
many other C++ programs) where operator= was checking for self assignment.
Folding this allows us to SROA several additional structs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17735 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 07:33:16 +00:00
Chris Lattner
6739eae7ea Remove note to self
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17734 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 06:57:47 +00:00
Brian Gaeke
da9b3668c2 Fix problem with insertion point for ADJCALLSTACKDOWN.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17733 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 06:32:08 +00:00
Brian Gaeke
5179e41d6e Update lists of failing unit tests.
Exclude bigfib, so that we effectively exclude all C++ benchmarks.
Update to-do list: mention va_start.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17732 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 06:32:07 +00:00
Chris Lattner
f2c83db935 Oops, make this test the right thing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17731 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 06:11:41 +00:00
Chris Lattner
a990d94330 If a function always returns a constant, replace all calls sites with that
constant value.  This makes the return value dead and allows for
simplification in the caller.

This implements IPConstantProp/return-constant.ll

This triggers several dozen times throughout SPEC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17730 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 06:10:11 +00:00
Chris Lattner
0240a377d8 New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17729 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 06:02:46 +00:00
Brian Gaeke
04fe7477b1 Fix NotTest - round up extraStack to the nearest doubleword, if it is
not zero.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17728 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 05:19:00 +00:00
Chris Lattner
d878ecd904 Teach SROA how to promote an array index that is variable, if the dimension
of the array is just two.  This occurs 8 times in gcc, 6 times in crafty, and
12 times in 099.go.

This implements ScalarRepl/sroa_two.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17727 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 05:00:19 +00:00
Chris Lattner
6c84e795ea New testcase, SROA with variable array index
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17726 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 04:58:40 +00:00
Brian Gaeke
b31a828533 Update failing Benchmarks; point out that I'm skipping Shootout-C++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17725 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 04:43:12 +00:00
Chris Lattner
f5990edc87 Rearrange some code, no functionality changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17724 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 04:24:28 +00:00
Brian Gaeke
1c745818ff Update expected UnitTests failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17723 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 03:22:08 +00:00