Tanya Lattner
b947fb3e95
Rewrote prcontext.py in tcl.
...
llvm-svn: 17708
2004-11-13 21:03:22 +00:00
Chris Lattner
049d33a717
shld is a very high latency operation. Instead of emitting it for shifts of
...
two or three, open code the equivalent operation which is faster on athlon
and P4 (by a substantial margin).
For example, instead of compiling this:
long long X2(long long Y) { return Y << 2; }
to:
X3_2:
movl 4(%esp), %eax
movl 8(%esp), %edx
shldl $2, %eax, %edx
shll $2, %eax
ret
Compile it to:
X2:
movl 4(%esp), %eax
movl 8(%esp), %ecx
movl %eax, %edx
shrl $30, %edx
leal (%edx,%ecx,4), %edx
shll $2, %eax
ret
Likewise, for << 3, compile to:
X3:
movl 4(%esp), %eax
movl 8(%esp), %ecx
movl %eax, %edx
shrl $29, %edx
leal (%edx,%ecx,8), %edx
shll $3, %eax
ret
This matches icc, except that icc open codes the shifts as adds on the P4.
llvm-svn: 17707
2004-11-13 20:48:57 +00:00
Chris Lattner
ef6bd92a8c
Add missing check
...
llvm-svn: 17706
2004-11-13 20:04:38 +00:00
Chris Lattner
8d521bb16e
Compile:
...
long long X3_2(long long Y) { return Y+Y; }
int X(int Y) { return Y+Y; }
into:
X3_2:
movl 4(%esp), %eax
movl 8(%esp), %edx
addl %eax, %eax
adcl %edx, %edx
ret
X:
movl 4(%esp), %eax
addl %eax, %eax
ret
instead of:
X3_2:
movl 4(%esp), %eax
movl 8(%esp), %edx
shldl $1, %eax, %edx
shll $1, %eax
ret
X:
movl 4(%esp), %eax
shll $1, %eax
ret
llvm-svn: 17705
2004-11-13 20:03:48 +00:00
Chris Lattner
8c3e7b92af
Simplify handling of shifts to be the same as we do for adds. Add support
...
for (X * C1) + (X * C2) (where * can be mul or shl), allowing us to fold:
Y+Y+Y+Y+Y+Y+Y+Y
into
%tmp.8 = shl long %Y, ubyte 3 ; <long> [#uses=1]
instead of
%tmp.4 = shl long %Y, ubyte 2 ; <long> [#uses=1]
%tmp.12 = shl long %Y, ubyte 2 ; <long> [#uses=1]
%tmp.8 = add long %tmp.4, %tmp.12 ; <long> [#uses=1]
This implements add.ll:test25
Also add support for (X*C1)-(X*C2) -> X*(C1-C2), implementing sub.ll:test18
llvm-svn: 17704
2004-11-13 19:50:12 +00:00
Chris Lattner
f6392b4616
New testcase
...
llvm-svn: 17703
2004-11-13 19:49:39 +00:00
Chris Lattner
6912370a78
Add support for shifts
...
llvm-svn: 17702
2004-11-13 19:32:45 +00:00
Chris Lattner
4efe20a103
Fold:
...
(X + (X << C2)) --> X * ((1 << C2) + 1)
((X << C2) + X) --> X * ((1 << C2) + 1)
This means that we now canonicalize "Y+Y+Y" into:
%tmp.2 = mul long %Y, 3 ; <long> [#uses=1]
instead of:
%tmp.10 = shl long %Y, ubyte 1 ; <long> [#uses=1]
%tmp.6 = add long %Y, %tmp.10 ; <long> [#uses=1]
llvm-svn: 17701
2004-11-13 19:31:40 +00:00
Chris Lattner
2858e17538
Lazily create the abort message, so only translation units that use unwind
...
will actually get it.
llvm-svn: 17700
2004-11-13 19:07:32 +00:00
Chris Lattner
9b0291b18d
Fix: CodeExtractor/2004-11-12-InvokeExtract.ll
...
llvm-svn: 17699
2004-11-13 00:06:45 +00:00
Chris Lattner
8cc98850f9
New testcase
...
llvm-svn: 17698
2004-11-13 00:06:32 +00:00
Chris Lattner
5bcca6058a
Fix a bug where the code extractor would get a bit confused handling invoke
...
instructions, setting DefBlock to a block it did not have dom info for.
llvm-svn: 17697
2004-11-12 23:50:44 +00:00
Chris Lattner
5c1d84c769
Simplify handling of constant initializers
...
llvm-svn: 17696
2004-11-12 22:42:57 +00:00
Reid Spencer
a81f8197eb
Makefile for lib/Linker
...
llvm-svn: 17695
2004-11-12 20:38:45 +00:00
Reid Spencer
361e513db0
This file originated in lib/VMCore/Linker.cpp but now lives in
...
lib/Linker/LinkModules.cpp
llvm-svn: 17694
2004-11-12 20:37:43 +00:00
Reid Spencer
1cfa8d60f8
This file originated in tools/gccld/Linker.cpp but now lives in
...
lib/Linker/LinkArchives.cpp
llvm-svn: 17693
2004-11-12 20:34:32 +00:00
Reid Spencer
aee67e6547
* Clean up all the shared library output on uninstall
...
* Provide the correct set of input directories to the TAGS target
* Provide a CTAGS target for building Vi style ctags files.
llvm-svn: 17688
2004-11-12 02:27:36 +00:00
Reid Spencer
2ea5ae618c
Document the new llvm-ranlib command.
...
llvm-svn: 17687
2004-11-12 00:18:35 +00:00
Reid Spencer
ffb9f06135
Correctly terminate a list.
...
llvm-svn: 17686
2004-11-12 00:16:51 +00:00
Reid Spencer
2e34034d80
Document the modifiers and the file format.
...
llvm-svn: 17685
2004-11-12 00:15:43 +00:00
Chris Lattner
738c89ecec
Make this build in release mode
...
llvm-svn: 17684
2004-11-11 22:11:17 +00:00
Reid Spencer
e448500e6d
Add llvm-ar to the index.
...
llvm-svn: 17682
2004-11-11 09:30:00 +00:00
Reid Spencer
8beeb49594
First attempt at llvm-ar documentation. Modifiers need a little more
...
explanation.
llvm-svn: 17681
2004-11-11 09:21:18 +00:00
Chris Lattner
9621dfab3f
Actually, leave the check in. This prevents us from counting dead arguments
...
as IPCP opportunities.
llvm-svn: 17680
2004-11-11 07:47:54 +00:00
Chris Lattner
5fa696f8e4
Fix bug: IPConstantProp/deadarg.ll
...
llvm-svn: 17679
2004-11-11 07:46:29 +00:00
Chris Lattner
ba582f0d11
new testcase
...
llvm-svn: 17678
2004-11-11 07:46:11 +00:00
Reid Spencer
45dc1394cd
Fix documentation for Makefile target name change. install-bytecode is now
...
just "install" in the runtime directory.
llvm-svn: 17677
2004-11-11 07:30:27 +00:00
Chris Lattner
c1d24cd859
Make IP Constant prop more aggressive about handling self recursive calls.
...
This implements IPConstantProp/recursion.ll
llvm-svn: 17666
2004-11-10 19:43:59 +00:00
Chris Lattner
59e5462557
New testcase
...
llvm-svn: 17665
2004-11-10 19:43:31 +00:00
John Criswell
04570265a5
Correct the name of stosd for the AT&T syntax:
...
It's stosl (l for long == 32 bit).
llvm-svn: 17658
2004-11-10 04:48:15 +00:00
Chris Lattner
0d3773d8b1
Do not let dead constant expressions hanging off of functions prevent IPCP.
...
This allows to elimination of a bunch of global pool descriptor args from
programs being pool allocated (and is also generally useful!)
llvm-svn: 17657
2004-11-09 20:47:30 +00:00
Reid Spencer
e5142be411
Provide conversion from posix time.
...
llvm-svn: 17656
2004-11-09 20:29:10 +00:00
Reid Spencer
202eaeb272
Fix isBytecodeFile to correctly recognized compressed bytecode too.
...
llvm-svn: 17655
2004-11-09 20:27:23 +00:00
Reid Spencer
fb1f7357c2
* Implement getStatusInfo for getting stat(2) like information
...
* Implement createTemporaryFile for mkstemp(3) functionality
* Fix isBytecodeFile to accept llvc magic # (compressed) as bytecode.
llvm-svn: 17654
2004-11-09 20:26:31 +00:00
Reid Spencer
abbefecf8e
Make sure llee can deal with compressed bytecode too.
...
llvm-svn: 17652
2004-11-09 20:21:25 +00:00
John Criswell
623dc9c5c0
Recognize compressed LLVM bytecode files.
...
This should fix the problem of not being able to link compressed LLVM
bytecode files from LLVM libraries.
llvm-svn: 17648
2004-11-09 19:37:07 +00:00
Reid Spencer
6a1a10aa54
Tune compression:
...
bzip2: block size 9 -> 5, reduces memory by 400Kbytes, doesn't affect speed
or compression ratio on all but the largest bytecode files (>1MB)
zip: level 9 -> 6, this speeds up compression time by ~30% but only
degrades the compressed size by a few bytes per megabyte. Those few
bytes aren't worth the effort.
llvm-svn: 17647
2004-11-09 17:58:09 +00:00
Chris Lattner
436285e75d
Change this back so that I get stable numbers to reflect the change from the
...
nightly testers
llvm-svn: 17646
2004-11-09 08:05:23 +00:00
Reid Spencer
981afd7c1c
Document quick-test target.
...
llvm-svn: 17644
2004-11-09 06:32:58 +00:00
Reid Spencer
3006081612
Add a quick-test target that uses QUICKTEST variable to quickly run a
...
portion of the test suite. e.g.:
make quck-test QUICKTEST=Regression/Bytecode
llvm-svn: 17643
2004-11-09 06:28:32 +00:00
Chris Lattner
1f0a97c6cb
Fix bug: 2004-11-08-FreeUseCrash.ll
...
llvm-svn: 17642
2004-11-09 05:10:56 +00:00
Chris Lattner
1276fbe8ba
Name file properly
...
llvm-svn: 17641
2004-11-09 05:07:01 +00:00
Chris Lattner
5a1e9bf72f
Hrm, don't ask how I ran into this bug
...
llvm-svn: 17640
2004-11-09 05:06:23 +00:00
Misha Brukman
3e5dd6d34c
* Convert tabs to spaces
...
* Order #includes according to style guide
* Remove extraneous blank lines
llvm-svn: 17639
2004-11-09 04:27:19 +00:00
Misha Brukman
8d5c13c3e3
Output the program name (in this case, gccld) with warning about invalid files
...
llvm-svn: 17638
2004-11-09 04:24:59 +00:00
Nate Begeman
1164955bf1
Allow hbd to be bugpointable on darwin by fixing common and linkonce codegen
...
llvm-svn: 17637
2004-11-09 04:01:18 +00:00
Misha Brukman
1df8148b01
Handle headers for compressed bytecode files
...
llvm-svn: 17634
2004-11-08 22:03:32 +00:00
Misha Brukman
465e7fb8ef
Don't silently ignore invalid files: tell the user!
...
llvm-svn: 17633
2004-11-08 22:03:10 +00:00
Chris Lattner
068c0cf56a
Fix a bug that was preventing povray and namd from pool allocating correctly.
...
llvm-svn: 17632
2004-11-08 21:08:46 +00:00
Chris Lattner
1feea5ffc9
Handle assert_fail special
...
llvm-svn: 17631
2004-11-08 21:08:28 +00:00