Commit Graph

4782 Commits

Author SHA1 Message Date
Chris Lattner
bb4a15ca57 Really, there was a reason for me factoring that out
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10089 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-19 19:20:20 +00:00
Chris Lattner
542d991451 *** Significantly speed up type resultion
This change speeds up type resolution by checking to see if a type is
  recursive, and if it's not, using a more efficient algorithm.

  This dramatically reduces bytecode loading time of kc++, reducing time-to-jit
  kc++ --version to 17s from 33s


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10088 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-19 19:10:23 +00:00
Chris Lattner
29b789befa * Finegrainify namespacification
* Strength reduce several data structures which were left over from the
  "bad old days"
* Minor efficiency improvements
* Major efficiency improvement: In BytecodeParser::insertValue, do not allocate
  a new ValueTab entry just because some value exists with a large type.  This
  dramatically reduces the number of allocations/deallocations performed by the
  bytecode reader, and speeds up parsing of Kimwitu++ from 34s to 17s.  This is
  to help address PR127


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10085 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-19 17:27:18 +00:00
Chris Lattner
8eb49936ae Minor efficiency improvements, finegrainify namespacification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10084 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-19 17:21:11 +00:00
Chris Lattner
c2f4b11552 In the future, these slabs can be null...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10083 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-19 17:20:42 +00:00
Chris Lattner
ebfb9f487d Minor efficiency improvements all over. Finegrainify Namespacification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10082 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-19 17:17:36 +00:00
Chris Lattner
deab9a7ae5 Fine grainify namespacification, #include file that defines the interface!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10081 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-19 16:06:55 +00:00
Chris Lattner
f2586d13d5 Finegrainify namespacification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10080 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-19 06:14:38 +00:00
Chris Lattner
1c3673b238 Minor speedup to do less linear time searches of information we already have.
speeds up disassembly of kc++ by .6s


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10079 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-19 06:01:12 +00:00
Chris Lattner
7dadaa2785 Fix PR130, and testcase test/Regression/Linker/2003-11-18-TypeResolution.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10075 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-19 01:02:52 +00:00
Chris Lattner
62b767b8d7 Fix PR123
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10069 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-18 17:47:05 +00:00
Brian Gaeke
c8db76c647 Only use -Wl,-R. if HAVE_LINK_R.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10066 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-18 06:31:17 +00:00
Misha Brukman
ef7e57018d Emit the MachineConstantPool constants in one contiguous memory `pool'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10060 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-17 20:40:07 +00:00
Misha Brukman
0ca042db71 * Order #includes as per style guide
* Delete blank comment lines
* Eliminate space between function name and open-paren ( to be consistent


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10059 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-17 20:37:02 +00:00
Chris Lattner
5d5a714b24 Implement == and != correctly. Before they would incorrectly return !=
for some constant exprs when they could really be the same value


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10058 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-17 20:19:35 +00:00
Chris Lattner
48babfa60d The ConstantPointer class is now gone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10057 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-17 19:47:21 +00:00
Misha Brukman
444fdea19d This file was somehow missing a top-level comment line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10055 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-17 19:35:17 +00:00
Chris Lattner
a83a6e4276 No REALLY, get rid of ConstantPointer references
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10054 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-17 19:21:04 +00:00
Chris Lattner
cf09f51bb9 Eliminate use of the ConstantPointer class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10053 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-17 19:19:32 +00:00
Chris Lattner
0dc396909e Constant folding shalt not be built on annotations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10052 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-17 19:05:17 +00:00
Chris Lattner
02071d08c1 Remove usage of ConstantPointer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10051 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-17 17:28:29 +00:00
Chris Lattner
41495a21f9 Be a bit more tolerant of broken code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10050 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-17 01:17:04 +00:00
Brian Gaeke
2c61d7b240 Implement skeletal support for __.SYMDEF (ranlib) sections in archives.
Correctly parse the Long Filename section of the archive.
When reading in archive members, set their ModuleIDs to
 "ARCHIVENAME(MEMBERNAME)", as is traditional.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10043 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-16 23:08:48 +00:00
Brian Gaeke
cd4a398c25 When you hand WriteAsOperand a type, it now prints out its symbolic name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10042 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-16 23:08:27 +00:00
Brian Gaeke
9cebe2d83b When failing a Verifier assertion, use WriteAsOperand to print out the
offending types and/or values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10041 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-16 23:07:42 +00:00
Brian Gaeke
2282ae1ebd When we find a module we want, in an archive, in verbose mode,
print out the module's identifier (which should now contain the name
 of both the archive and the module.)
Wrap some lines at 80 cols.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10039 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-16 23:07:13 +00:00
Chris Lattner
40efcec8e8 Don't print 'No predecessors!' on the entry block
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10038 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-16 22:59:57 +00:00
Chris Lattner
c59c118e44 ISO 9899 7.13.2.1 (3) says that "[...] the values of objects of automatic
storage duration that are local to the function containing the invocation of the
[...] setjmp macro that do not have volatile-qualified type and have been
changed between the setjmp invocation and longjmp call are indeterminate."

As such, we have to mark all variables in a function that uses 'invoke' as
volatile.

This fixes PR77


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10035 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-16 22:06:14 +00:00
Chris Lattner
faa45ce300 Fix PR116
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10032 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-16 21:39:27 +00:00
Chris Lattner
8b70b78ba4 Fixes for PR114: Thanks to Reid Spencer!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10029 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-16 20:21:15 +00:00
Chris Lattner
179bc7dcb1 Implement a small optimization to handling of GEP's that are equivalent to casts.
This results in substantially reduced collapsing for some testcases


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10002 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-14 17:09:46 +00:00
Chris Lattner
db9546e324 I can't believe the incompetence of the people I have to deal with around here.
These fools don't even wrap code at 80 columns.

Oh wait, _I_ wrote that.  That explains a lot!!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9999 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-14 16:34:25 +00:00
Chris Lattner
8dc6ba9a12 Fix PR 110: the constant folding code assumes that if something is not a
constant expression, but is of (for example) ubyte type, then it is a
ConstantUInt.  This was not true for placeholders.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9994 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-14 06:38:46 +00:00
Chris Lattner
5158aaf20e Expose the verifier to opt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9984 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 19:47:29 +00:00
Chris Lattner
917e804253 Implement feature: InstCombine/2003-11-13-ConstExprCastCall.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9981 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 19:17:02 +00:00
Chris Lattner
a366c98077 Trying to get the dsgraph for an external function is bad for DSA's health
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9979 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 18:48:11 +00:00
Brian Gaeke
8da17489aa Change LLI's internal representation of va_list to a pointer to the next
argument to be returned by va_arg. This allows va_lists to be passed
between different LLVM procedures (though it is unlikely that an LLI
va_list would make sense to an external function, except by chance.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9965 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 06:06:01 +00:00
Chris Lattner
79390d48d0 Implement the CompleteBU pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9964 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 05:05:41 +00:00
Chris Lattner
6acfe92b32 Minor code cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9962 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 05:04:19 +00:00
Chris Lattner
a190766a54 Disable integer tracking by default
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9960 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 03:10:49 +00:00
Chris Lattner
95724a4aec Add an initial version of the CompleteBUDataStructures class, which is currently
identical to the BU pass, but has an accurate call graph


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9956 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 01:43:00 +00:00
Misha Brukman
c6b1584de6 Include the file before we close the llvm namespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9954 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 00:23:05 +00:00
Misha Brukman
6275a04768 Substantially re-organized this file:
* There is now only one pass to print out assembly instead of two
* It is a FunctionPass
* The Module-level printing of globals is now in doFinalization() method of the
  FunctionPass
* The code has been reformatted to follow LLVM coding standards
* Some comments, not all, were doxygenified
* Last but not least, the function to create an instance of this pass is also no
  longer a method in the UltraSparc class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9953 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 00:22:19 +00:00
Misha Brukman
661a571053 The function to create an instance of this pass is no longer a method of
the UltraSparc class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9952 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 00:19:02 +00:00
Misha Brukman
7e060be881 The functions to create new instances of passes are no longer methods in the
UltraSparc class. Comments are also doxygen-compatible now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9951 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 00:17:20 +00:00
Misha Brukman
1be1a235d7 * Put command-line switches in their own namespace
* Pass creation functions are no longer in the UltraSparc class


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9950 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 00:16:28 +00:00
Misha Brukman
bede635646 Force a dependency on the .inc file, which must be generated!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9949 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 00:05:09 +00:00
Chris Lattner
9a92729581 Fine-grainify namespaces for this library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9948 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-12 23:11:14 +00:00
Chris Lattner
afc1dbafb4 Add new argument to disable checking
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9922 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-12 17:58:22 +00:00
Chris Lattner
579de71d08 Detect problems with PHI node operands!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9916 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-12 07:13:37 +00:00