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
Brian Gaeke
07097e12d5
Support UndefValue emission.
...
llvm-svn: 17721
2004-11-14 03:22:05 +00:00
Tanya Lattner
0fbc9c8350
setting path to prcontext.tcl script. Right now it searches for tclsh in your path, but this should be obtained from configure.
...
llvm-svn: 17720
2004-11-13 23:36:18 +00:00
Chris Lattner
9fa7f0ae0a
Remove debugging code
...
llvm-svn: 17719
2004-11-13 23:32:53 +00:00
Chris Lattner
244031d306
Argument promotion transforms functions to unconditionally load their
...
argument pointers. This is only valid to do if the function already
unconditionally loaded an argument or if the pointer passed in is known
to be valid. Make sure to do the required checks.
This fixed ArgumentPromotion/control-flow.ll and the Burg program.
llvm-svn: 17718
2004-11-13 23:31:34 +00:00
Chris Lattner
0a205ead8b
Add a testcase we should continue to argpromote
...
llvm-svn: 17717
2004-11-13 23:30:22 +00:00
Chris Lattner
70496c1728
Add a testcase for a function we cannot legally promote the argument of.
...
llvm-svn: 17716
2004-11-13 23:28:39 +00:00
Chris Lattner
7024d6b23e
Add useful method, minor cleanups
...
llvm-svn: 17715
2004-11-13 23:28:10 +00:00
Chris Lattner
56c4c99cca
Don't print unneeded labels
...
llvm-svn: 17714
2004-11-13 23:27:11 +00:00
Tanya Lattner
79d046ba70
Run prcontext.tcl with tclsh and let it be found in the path. This should be found by configure.
...
llvm-svn: 17713
2004-11-13 23:16:17 +00:00