Commit Graph

15374 Commits

Author SHA1 Message Date
Reid Spencer 9db61d9e3a *Adjust prototypes for public interface. *Rewrite LinkInArchive to use symbol tables.
llvm-svn: 17772
2004-11-14 22:02:27 +00:00
Reid Spencer 71f51e603c Simplify compression code by using the high level interface to the Compressor
llvm-svn: 17771
2004-11-14 22:01:41 +00:00
Reid Spencer 0ce0d938b1 Add wrappers to get defined symbols from bytecode
llvm-svn: 17770
2004-11-14 22:00:48 +00:00
Reid Spencer f01fc688ba Simplify handling of decompression
llvm-svn: 17769
2004-11-14 22:00:09 +00:00
Reid Spencer 0e36b8afb9 Simplify decompression code by using the high level interface to the Compressor
llvm-svn: 17768
2004-11-14 21:59:21 +00:00
Reid Spencer f0c201b34d Completely rewritten to allow reading of archives and symbol table lookup in a more efficient manner.
llvm-svn: 17767
2004-11-14 21:58:33 +00:00
Reid Spencer 948ff3d628 Implementation declarations for Archive
llvm-svn: 17766
2004-11-14 21:57:46 +00:00
Reid Spencer ba09b3bf28 First working version
llvm-svn: 17765
2004-11-14 21:56:59 +00:00
Reid Spencer 044adab53a Add the Archive library
llvm-svn: 17764
2004-11-14 21:55:27 +00:00
Reid Spencer c9e91ee004 Add the Linker library
llvm-svn: 17763
2004-11-14 21:54:41 +00:00
Reid Spencer cbbc7dc9a4 *Make naming convention consistent.*Add convertion to/from Unix Epoch time.*Add ability to convert to readable string.
llvm-svn: 17762
2004-11-14 21:53:55 +00:00
Reid Spencer 95eecc880c Make the remove*OnSignal functions deal with Paths not strings
llvm-svn: 17761
2004-11-14 21:53:09 +00:00
Reid Spencer 21488afc70 *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.
llvm-svn: 17760
2004-11-14 21:52:22 +00:00
Reid Spencer c9e20eac69 Allow explicit closing of the MappedFile, before destruction
llvm-svn: 17759
2004-11-14 21:51:36 +00:00
Reid Spencer b457a6bcbc Linker is its own module now. Moved to include/llvm/Linker.h
llvm-svn: 17758
2004-11-14 21:50:50 +00:00
Reid Spencer 01d36a4cc1 Add higher level interface to simplify use of Compressor
llvm-svn: 17757
2004-11-14 21:50:00 +00:00
Reid Spencer 8a09893f02 Add the MoreHelp function pointer. If non-null, this specifies a function to be called to print out additional help information
llvm-svn: 17756
2004-11-14 21:49:13 +00:00
Reid Spencer 04fbc475ef Remove ReadArchiveFile (functionality moved to Archive.h). Add an alternate form for GetBytecodeSymbols.
llvm-svn: 17755
2004-11-14 21:48:27 +00:00
Reid Spencer 791ad3829a Complete rewrite to get first working version.
llvm-svn: 17754
2004-11-14 21:47:41 +00:00
Reid Spencer ec7a80bad2 Add a command for using llvm-ar correctly.
llvm-svn: 17753
2004-11-14 21:46:55 +00:00
Reid Spencer c1bb479c54 Interface to Linker (revised/expanded from Support/Linker.h)
llvm-svn: 17752
2004-11-14 21:46:08 +00:00
Misha Brukman 704576301f GhostLinkage not allowed in LLVM AsmWriter, either
llvm-svn: 17751
2004-11-14 21:04:34 +00:00
Misha Brukman 7f245d47c5 GhostLinkage should not reach asm printing stage
llvm-svn: 17750
2004-11-14 21:03:49 +00:00
Misha Brukman e225fa12ab Handle GhostLinkage (should not ever reach the assembly printing stage!)
llvm-svn: 17749
2004-11-14 21:03:30 +00:00
Misha Brukman b2e062c9d5 Mark an unmaterialized function as having GhostLinkage
llvm-svn: 17748
2004-11-14 21:02:55 +00:00
Misha Brukman f236e784f0 Add GhostLinkage for marking functions before they're fully materialized
llvm-svn: 17747
2004-11-14 21:02:28 +00:00
Chris Lattner 28eeb73f2f 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!

llvm-svn: 17746
2004-11-14 20:50:30 +00:00
Chris Lattner 78d31c13ff New testcase. Believe it or not, this happens a LOT in vortex
llvm-svn: 17745
2004-11-14 20:41:39 +00:00
Misha Brukman 8b8ba9fcf7 Fix build on Linux/PowerPC64 using SuSE GCC (#undef PPC)
llvm-svn: 17744
2004-11-14 20:34:01 +00:00
Reid Spencer b75e2d9224 Moved from include/llvm/Support/Linker.h
llvm-svn: 17743
2004-11-14 20:21:58 +00:00
Reid Spencer b9e561e90c Moved to lib/Bytecode/Archive in preparation for re-write.
llvm-svn: 17742
2004-11-14 19:59:40 +00:00
Chris Lattner 46dd5a6304 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.

llvm-svn: 17741
2004-11-14 19:29:34 +00:00
Chris Lattner 7515cabe2a 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.

llvm-svn: 17740
2004-11-14 19:13:23 +00:00
Chris Lattner fd6a717b95 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.

llvm-svn: 17739
2004-11-14 19:12:17 +00:00
Chris Lattner 2d6843c2f7 Fix typo
llvm-svn: 17738
2004-11-14 17:54:58 +00:00
Chris Lattner 8875ae91a4 add a testcase, which we already handle
llvm-svn: 17737
2004-11-14 17:54:27 +00:00
Chris Lattner 15ff1e1885 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.

llvm-svn: 17735
2004-11-14 07:33:16 +00:00
Chris Lattner 5a8b003a09 Remove note to self
llvm-svn: 17734
2004-11-14 06:57:47 +00:00
Brian Gaeke e13c960415 Fix problem with insertion point for ADJCALLSTACKDOWN.
llvm-svn: 17733
2004-11-14 06:32:08 +00:00
Brian Gaeke a281ebc490 Update lists of failing unit tests.
Exclude bigfib, so that we effectively exclude all C++ benchmarks.
Update to-do list: mention va_start.

llvm-svn: 17732
2004-11-14 06:32:07 +00:00
Chris Lattner a86e8783e8 Oops, make this test the right thing.
llvm-svn: 17731
2004-11-14 06:11:41 +00:00
Chris Lattner af555adc15 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.

llvm-svn: 17730
2004-11-14 06:10:11 +00:00
Chris Lattner 37d2cd7cd6 New testcase
llvm-svn: 17729
2004-11-14 06:02:46 +00:00
Brian Gaeke 347a000be6 Fix NotTest - round up extraStack to the nearest doubleword, if it is
not zero.

llvm-svn: 17728
2004-11-14 05:19:00 +00:00
Chris Lattner fe3f4e6ebd 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

llvm-svn: 17727
2004-11-14 05:00:19 +00:00
Chris Lattner 8076a5de30 New testcase, SROA with variable array index
llvm-svn: 17726
2004-11-14 04:58:40 +00:00
Brian Gaeke e90176e171 Update failing Benchmarks; point out that I'm skipping Shootout-C++.
llvm-svn: 17725
2004-11-14 04:43:12 +00:00
Chris Lattner 8881912d71 Rearrange some code, no functionality changes.
llvm-svn: 17724
2004-11-14 04:24:28 +00:00
Brian Gaeke 18b6015b11 Update expected UnitTests failures.
llvm-svn: 17723
2004-11-14 03:22:08 +00:00
Brian Gaeke e6b47514a3 Rewrite outgoing arg handling to handle more weird corner cases.
llvm-svn: 17722
2004-11-14 03:22:07 +00:00