Chris Lattner
6cc66d93f1
Fix bogus warning and simplify code
...
llvm-svn: 10924
2004-01-20 17:06:29 +00:00
Chris Lattner
083c99e347
Major changes. Now we only compactify individual type planes if it is in
...
fact "profitable" to do so. This makes compactification "free" for small
programs (ie, it is completely disabled) and even helps large programs by
not having to encode pointless compactification planes.
On 176.gcc, this saves 50K from the bytecode file, which is, alas only
a couple percent.
This concludes my head bashing against the bytecode format, at least for
now.
llvm-svn: 10922
2004-01-20 00:57:32 +00:00
Chris Lattner
da550c1efb
add a method proto, make a method not inline
...
llvm-svn: 10921
2004-01-20 00:54:47 +00:00
Chris Lattner
a395324383
Bugfixes for dealing with partially compactified functions
...
llvm-svn: 10920
2004-01-20 00:54:06 +00:00
Misha Brukman
d3de5c6182
Now with HTML 4.01 comliance flavor.
...
llvm-svn: 10919
2004-01-20 00:20:17 +00:00
Chris Lattner
5a66bb7507
Save another 30K from 176.gcc by encoding the compaction table a bit more
...
intelligently.
llvm-svn: 10918
2004-01-18 22:35:34 +00:00
Chris Lattner
979ca2fccd
Remove -debug output
...
llvm-svn: 10917
2004-01-18 22:26:53 +00:00
Chris Lattner
e6f99bd3a9
Add enum for compaction table.
...
llvm-svn: 10916
2004-01-18 21:09:23 +00:00
Chris Lattner
bc02f4ce97
Add support for writing bytecode files with compactiontables for bytecode files.
...
This shrinks the bytecode file for 176.gcc by about 200K (10%), and 254.gap by
about 167K, a 25% reduction. There is still a lot of room for improvement in
the encoding of the compaction table.
llvm-svn: 10915
2004-01-18 21:08:52 +00:00
Chris Lattner
e104d88f83
Add support for reading bytecode files with compactiontables for bytecode files.
...
This shrinks the bytecode file for 176.gcc by about 200K (10%), and 254.gap by
about 167K, a 25% reduction. There is still a lot of room for improvement in
the encoding of the compaction table.
llvm-svn: 10914
2004-01-18 21:08:15 +00:00
Chris Lattner
ca1f8afe85
Add support for building the compactiontable for bytecode files. This shrinks
...
the bytecode file for 176.gcc by about 200K (10%), and 254.gap by about 167K,
a 25% reduction. There is still a lot of room for improvement in the encoding
of the compaction table.
llvm-svn: 10913
2004-01-18 21:07:07 +00:00
Chris Lattner
23e583b5dc
Add support for representing the "compaction table"
...
Change protected members to private. Nothing should subclass SlotCalculator
llvm-svn: 10912
2004-01-18 21:03:49 +00:00
Chris Lattner
f78819d9ad
Eliminate special case handling for CPR's
...
Fix some problem cases where I was building the slot calculator in bytecode
writer mode instead of asmwriter mode.
llvm-svn: 10911
2004-01-18 21:03:06 +00:00
Chris Lattner
e18faa4805
Clarify situation w.r.t the -lowerinvoke pass.
...
llvm-svn: 10909
2004-01-18 20:13:43 +00:00
Chris Lattner
677af4a1cb
Bytecode format for LLVM 1.2 no longer explicitly encodes zeros in primitive
...
type planes. This saves about 5k on 176.gcc, and is needed for a subsequent
patch of mine I'm working on.
llvm-svn: 10908
2004-01-17 23:25:43 +00:00
Chris Lattner
4533ba592b
fix copy-and-pasto
...
llvm-svn: 10907
2004-01-17 22:48:06 +00:00
Chris Lattner
a75f858ac4
Revision of Brian's threading support library to be a bit more generic and
...
platform independent. This code is completely untested (but never used),
and needs autoconf support for detecting pthreads, but it's a start, and
deletes two emails from my inbox. :)
llvm-svn: 10906
2004-01-17 19:54:29 +00:00
Chris Lattner
14004da36c
This file goes away
...
llvm-svn: 10905
2004-01-17 19:35:57 +00:00
Brian Gaeke
8b05e4fcd9
Add a fixed bug
...
llvm-svn: 10904
2004-01-16 21:55:04 +00:00
John Criswell
7a32336316
Remove the use of LLVMGCCARCH. Instead, query the compiler for the
...
location of libgcc.a; that will tell us the name of the directory to find
the libraries that we're looking for.
llvm-svn: 10903
2004-01-16 21:53:23 +00:00
Brian Gaeke
f3aa892409
Remove some whitespace and fix up some comments.
...
Take settings of LCC and LCC1XX from configure.
llvm-svn: 10902
2004-01-16 21:31:34 +00:00
Brian Gaeke
423cecaded
Get paths to cc1 and cc1plus by asking llvm-gcc, and AC_SUBST them.
...
llvm-svn: 10901
2004-01-16 21:31:22 +00:00
Brian Gaeke
6073c44a7f
Regenerated using autoconf-2.57.
...
llvm-svn: 10900
2004-01-16 21:31:21 +00:00
Brian Gaeke
eac97bf984
Take settings of LCC and LCC1XX from configure.
...
llvm-svn: 10899
2004-01-16 21:31:20 +00:00
Brian Gaeke
9d7984408c
Clarify comment.
...
llvm-svn: 10898
2004-01-16 21:13:10 +00:00
Brian Gaeke
6fb3da0c1b
I'm fairly certain this was just a typo.
...
llvm-svn: 10897
2004-01-16 21:12:34 +00:00
Alkis Evlogimenos
d844972574
Handle printing of intervals that are not assign to any physical
...
register yet (2nd try).
llvm-svn: 10896
2004-01-16 20:33:13 +00:00
Alkis Evlogimenos
8672af1cc8
Handle printing of intervals that are not assign to any physical
...
register yet.
llvm-svn: 10895
2004-01-16 20:29:42 +00:00
Alkis Evlogimenos
d86933d21d
Fold open interval ends handling into
...
LiveIntervals::Interval::expiredAt() and simplify regalloc code.
llvm-svn: 10894
2004-01-16 20:17:05 +00:00
Alkis Evlogimenos
e9c6ba891e
Add asserts to previous change.
...
llvm-svn: 10893
2004-01-16 16:23:23 +00:00
Alkis Evlogimenos
3010b3e38e
Use a list instead of a vector to store intervals. This will be needed
...
when we join intervals and one of the two will need to be removed.
llvm-svn: 10892
2004-01-16 16:06:59 +00:00
Misha Brukman
929d1d1ca1
Use the LLVM standard name mangling infrastructure instead of reinventing the
...
wheel.
llvm-svn: 10891
2004-01-15 22:44:19 +00:00
Brian Gaeke
f39fa9e2e5
This is my script for narrowing down miscompilations to a single file.
...
llvm-svn: 10890
2004-01-15 22:35:43 +00:00
Chris Lattner
4c57267ece
If these blocks are empty, there is no reason to even emit the bytecode blocks.
...
This saves about 15K in 176.gcc, coupled with another patch that I'm working on.
llvm-svn: 10889
2004-01-15 21:06:57 +00:00
Chris Lattner
2d0e6f6326
Cleanups & efficiency improvements
...
llvm-svn: 10888
2004-01-15 20:24:09 +00:00
Misha Brukman
c6ef5598ef
Put stylesheet after the title.
...
llvm-svn: 10887
2004-01-15 19:04:12 +00:00
Misha Brukman
67db86a0cc
* HTML 4.01 Strict DTD compliance
...
* Added icons to check document easily
llvm-svn: 10886
2004-01-15 19:03:47 +00:00
Chris Lattner
21699e8f55
The bcwriter does not want ConstantPointerRef's to be indexed, and the asmwriter never did!
...
llvm-svn: 10885
2004-01-15 18:47:15 +00:00
Chris Lattner
f4572852dc
ConstantPointerRef's are no longer emitted. This saves 20028 bytes in the
...
bytecode files when compiling 176.gcc, but more importantly will make it
easier to eliminate CPR's in the future (no new .bc revision will be
required to support them)
llvm-svn: 10884
2004-01-15 18:46:56 +00:00
Chris Lattner
e2f6317436
Allow bytecode files to refer directly to global values as constants, instead
...
of forcing them to go through ConstantPointerRef's. This allows bytecode
files to mirror .ll files, allows more efficient encoding, and makes it easier
to eventually eliminate CPR's.
llvm-svn: 10883
2004-01-15 18:45:25 +00:00
Chris Lattner
980ff78e3c
Fix more breakage with string change.
...
llvm-svn: 10882
2004-01-15 18:39:06 +00:00
Misha Brukman
f5edf1e931
* HTML 4.01 Strict DTD compliance
...
* Use stylesheets instead of adhoc formatting
* Fix broken links in doxygen due to llvm namespace
llvm-svn: 10881
2004-01-15 18:34:11 +00:00
Brian Gaeke
16d4009a1b
Include TargetRegInfo.h and declare SparcTargetMachine forward, to make this
...
header more easily includable.
llvm-svn: 10880
2004-01-15 18:17:07 +00:00
Brian Gaeke
361c004b88
Make this assertion more self-explanatory.
...
llvm-svn: 10879
2004-01-15 18:15:58 +00:00
Chris Lattner
a38ebcc476
Hrm, thanks to misha for paying attention to my foolishness!
...
llvm-svn: 10878
2004-01-15 17:59:29 +00:00
Chris Lattner
6ea3d24663
PR73 is finally fixed
...
llvm-svn: 10877
2004-01-15 17:55:21 +00:00
Chris Lattner
394fc96f39
Fix PR73: bytecode format inconsistent
...
llvm-svn: 10876
2004-01-15 17:55:09 +00:00
Chris Lattner
7c73b19bb8
Fix PR73
...
llvm-svn: 10875
2004-01-15 17:55:01 +00:00
Chris Lattner
f63a4ecc0b
Fix brokenness in my last checking
...
llvm-svn: 10874
2004-01-15 16:56:15 +00:00
Brian Gaeke
456f9a502b
Remove configure support for endianness checking, the need for which
...
Chris has helpfully expunged.
llvm-svn: 10873
2004-01-15 06:22:37 +00:00
Chris Lattner
b3d765f5dd
Remove ENDIAN_* support. LLVM does not need it anymore.
...
llvm-svn: 10872
2004-01-15 06:13:58 +00:00
Chris Lattner
faaf32db19
Change all of the bytecode reader primitives to throw exceptions instead of
...
returning error codes. Because they don't return an error code, they can
return the value read, which simplifies the code and makes the reader more
efficient (yaay!).
Also eliminate the special case code for little endian machines.
llvm-svn: 10871
2004-01-15 06:13:09 +00:00
Chris Lattner
1af644d9d6
Remove the optimization that depends on ENDIAN_LITTLE: it's not worth it.
...
llvm-svn: 10870
2004-01-15 06:11:30 +00:00
Chris Lattner
604d5f36fe
Remove broken doxygen comments
...
llvm-svn: 10869
2004-01-15 04:37:10 +00:00
Misha Brukman
7f67e378be
* Conform to HTML 4.01 strict DTD
...
* Use stylesheets instead of hard-coding formatting
llvm-svn: 10868
2004-01-15 00:14:41 +00:00
Misha Brukman
0bb8e9c3de
Make the stylesheet conform to CSS standard.
...
llvm-svn: 10867
2004-01-15 00:13:59 +00:00
Chris Lattner
b05f02336c
Improve comments, add support for remembering the constants strings that
...
are to be emitted.
llvm-svn: 10866
2004-01-14 23:37:43 +00:00
Chris Lattner
d8087822be
add support for -- for symmetry
...
llvm-svn: 10865
2004-01-14 23:37:22 +00:00
Chris Lattner
6229fbf328
The new bytecode format supports emitting strings a special case. This is
...
intended to save size (and does on small programs), but on big programs it
actually increases the size of the program slightly. The deal is that many
functions end up using the characters that the string contained, and the
characters are no longer in the global constant table, so they have to be
emitted in function specific constant pools.
This pessimization will be fixed in subsequent patches.
llvm-svn: 10864
2004-01-14 23:36:54 +00:00
Chris Lattner
394afe0f90
Version 1.2 now supports encoding strings as a special case, to avoid having
...
to emit all of those sbyte constants.
llvm-svn: 10863
2004-01-14 23:35:21 +00:00
Chris Lattner
de36304453
When emitting bytecode, handle strings specially. Do not add the characters
...
that make up the strings to the slotcalculator.
llvm-svn: 10862
2004-01-14 23:34:39 +00:00
Chris Lattner
c6098c06d5
Like output_data, it's obvious that input_data was only used with 1 character
...
data.
llvm-svn: 10861
2004-01-14 23:03:22 +00:00
Chris Lattner
369dbe2a09
"fix" a nasty race condition
...
llvm-svn: 10860
2004-01-14 21:18:03 +00:00
Chris Lattner
55ca34ab8a
Fix some exception safety problems
...
llvm-svn: 10859
2004-01-14 20:58:17 +00:00
Chris Lattner
2d6902b4b6
Hrm, apparently I missed lowering this intrinsic. :(
...
llvm-svn: 10858
2004-01-14 20:41:29 +00:00
Chris Lattner
eeb4ffd8ea
It is obvious that this has never been used for outputing more than a single
...
byte, it's totally endian incorrect!
llvm-svn: 10857
2004-01-14 18:50:28 +00:00
Chris Lattner
29f9590e82
Be const correct
...
llvm-svn: 10856
2004-01-14 18:41:38 +00:00
Chris Lattner
e8701f690f
Fix bug in previous checkin: Demorgan would be ashamed of me, I need to
...
lay off the crack.
llvm-svn: 10855
2004-01-14 17:51:53 +00:00
Chris Lattner
93cd755c05
Eliminate the isStringCompatible function, using ConstantArray::isString.
...
It's not clear why the code was looking for signed chars < 0, but it can't
matter to the assembler anyway, so the check goes away. This also fixes
compatibility with arrays of [us]byte that have constantexprs in them.
Also slightly restructure some code to be cleaner.
llvm-svn: 10854
2004-01-14 17:15:17 +00:00
Chris Lattner
ac2b198ec5
Eliminate the isStringCompatible function, using ConstantArray::isString.
...
It's not clear why the code was looking for signed chars < 0, but it can't
matter to the assembler anyway, so the check goes away.
llvm-svn: 10853
2004-01-14 17:14:42 +00:00
Chris Lattner
3dc08ebb5f
Use new method
...
llvm-svn: 10852
2004-01-14 17:07:46 +00:00
Chris Lattner
e8dfccaabd
Implement ConstantArray::isString
...
llvm-svn: 10851
2004-01-14 17:06:38 +00:00
Chris Lattner
87ce7dcb3e
Add new ConstantArray::isString(), as the conditions for using getString()
...
are complex enough to check that it should be a seperate method.
While I'm here, improve ConstantArray::getNullValue a bit, though the
FIXME is still quite valid.
llvm-svn: 10850
2004-01-14 17:06:21 +00:00
Chris Lattner
9a38c78fe6
Ok, I can't handle it. This is a temporary checkin of a ton of statistics that
...
i'm using in my work to reduce the bytecode file sizes. These will eventually
be removed.
llvm-svn: 10849
2004-01-14 16:54:21 +00:00
Chris Lattner
893b184db0
Remove support for the pre-1.0 bytecode version #1 . This will become
...
the bytecode revision generated by LLVM 1.2.
llvm-svn: 10848
2004-01-14 16:44:44 +00:00
Alkis Evlogimenos
0680572553
Properly update #intervals statistic.
...
llvm-svn: 10847
2004-01-14 10:44:29 +00:00
Chris Lattner
1f7942fe7d
Fix InstCombine/2004-01-13-InstCombineInvokePHI.ll, which also fixes lots
...
of C++ programs in Shootout-C++, including lists1 and moments, etc
llvm-svn: 10845
2004-01-14 06:06:08 +00:00
Brian Gaeke
1c0133ffd9
Don't pass anything to the IntrinsicLowering class that is not_intrinsic,
...
because that makes it abort. Also, fix a typo in a comment.
This checkin brought to you by the "It only takes about 30 seconds to run
ENABLE_LLI tests on Shootout on zion, even if they all dump core" fund.
llvm-svn: 10844
2004-01-14 06:02:53 +00:00
Chris Lattner
062f3ddaf5
new testcase
...
llvm-svn: 10843
2004-01-14 05:53:11 +00:00
Chris Lattner
02062823f7
Fix check. PHI nodes must be handled specially, of course.
...
llvm-svn: 10842
2004-01-14 05:42:52 +00:00
Chris Lattner
ec5089a223
Tighten up verifier checks. The result of an invoke instruction only
...
dominates the normal destination, not the exceptional dest (ie, the result
of a call is undefined on an exception)
llvm-svn: 10841
2004-01-14 04:25:59 +00:00
Chris Lattner
298d2f090f
Make sure to verify the result before writing out the bytecode file. Not doing
...
so can cause obscure errors downstream.
llvm-svn: 10840
2004-01-14 03:39:46 +00:00
Chris Lattner
2f1aa118a4
finegrainify namespacification
...
llvm-svn: 10839
2004-01-14 03:38:37 +00:00
Chris Lattner
1f018c2d01
Toggle sense of flag
...
llvm-svn: 10838
2004-01-14 02:50:16 +00:00
Chris Lattner
6089bb1f19
The only clients of the slot calculator are now the asmwriter and bcwriter.
...
Since this really only makes sense for these two, change hte instance variable
to reflect whether we are writing a bytecode file or not. This makes it
reasonable to add bcwriter specific stuff to it as necessary.
llvm-svn: 10837
2004-01-14 02:49:34 +00:00
Alkis Evlogimenos
2615c98042
Fix bug in LiveIntervals::Interval::overlaps and
...
LiveIntervals::Interval::liveAt. Both were considering the live ranges
closed in the end, when they are actually open.
llvm-svn: 10835
2004-01-14 00:20:09 +00:00
Alkis Evlogimenos
a0865cec3f
Improve debugging output.
...
llvm-svn: 10834
2004-01-14 00:09:36 +00:00
Alkis Evlogimenos
0431621429
Fix miscomputation of live intervals. The catch is that registers can
...
be dead at the defining instruction but can only be killed in
subsequent ones.
llvm-svn: 10833
2004-01-13 22:26:14 +00:00
Brian Gaeke
edf6c9d5a4
You know you like Makefiles with fewer variables. Next up on the victim list
...
is TOOLS, which is how you say LLVMTOOLCURRENT in Oldspeak.
llvm-svn: 10832
2004-01-13 22:22:19 +00:00
Alkis Evlogimenos
1a01c80f1b
Remove allocatable registers vector. It is already provided by
...
LiveVariables.
llvm-svn: 10830
2004-01-13 22:10:43 +00:00
Brian Gaeke
c0e7e5341e
Get rid of dead defns of LCC, LCXX, LAS, as per FIXME.
...
llvm-svn: 10829
2004-01-13 22:10:06 +00:00
Brian Gaeke
b96e5772f0
Fix overzealous fixme fixing
...
llvm-svn: 10827
2004-01-13 21:59:51 +00:00
Brian Gaeke
493c4c7f12
Remove dead definitions of NATGCC and CP, and dead .tll, .tbc rules.
...
Make should continue even if compilation cmds fail, for the sake of
the nightly tester, so use minuses on them.
Use LLVMAS, LLVMGCC, LLVMGXX instead of LAS, LCC, LCXX (as per FIXME).
llvm-svn: 10825
2004-01-13 21:56:30 +00:00
Alkis Evlogimenos
13e8623a3f
Cleanup debugging output.
...
llvm-svn: 10824
2004-01-13 21:53:20 +00:00
Chris Lattner
66f33ff6c2
Finegrainify namespacification
...
Using the SlotCalculator is total overkill for this file, a simple map
will suffice. Why doesn't this use the NameMangler interface?
llvm-svn: 10823
2004-01-13 21:27:59 +00:00
Alkis Evlogimenos
33f9cb1da7
Fix output of live intervals to show correctly its closed, open
...
ranges, i.e. [a,b)
llvm-svn: 10822
2004-01-13 21:17:47 +00:00
Alkis Evlogimenos
9d0c3d21c8
Remove unneeded check (with the recent change in live variables a use
...
of a physical register is always dominated by a def).
llvm-svn: 10821
2004-01-13 21:16:25 +00:00
Alkis Evlogimenos
65bc990bda
Indentation and whitespace cleanups.
...
llvm-svn: 10820
2004-01-13 20:42:08 +00:00
Alkis Evlogimenos
6b1ec75da9
Fix bug introduced by previous commit: check if fixed intervals
...
overlap before adding their spill weight.
llvm-svn: 10819
2004-01-13 20:37:01 +00:00
Brian Gaeke
dbd9c33e5e
Remove dump-input option.
...
Make addPassesToEmitAssembly() look slightly more like addPassesToJITCompile().
llvm-svn: 10818
2004-01-13 19:26:21 +00:00