1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-30 15:32:52 +01:00
Commit Graph

1129 Commits

Author SHA1 Message Date
Chris Lattner
8e01c48256 Add a flag to Module::getGlobalVariable to allow it to return vars with
internal linkage.

Patch provided by Evan Jones, thanks!

llvm-svn: 24604
2005-12-05 05:30:21 +00:00
Chris Lattner
48ddf6d833 This requires proper dominance
llvm-svn: 24408
2005-11-18 07:27:53 +00:00
Chris Lattner
d69b86453a * Fix DerivedType::dropAllTypeUses to not change the number of types in a
type when it gets refined.  This allows us to hash on this crucial value.
* Fix several issues in TypeMap::RefineAbstractType that prevent it from
  handling hash values that change correctly.
* Define hashTypeStructure to not always return 0.  :)

This last part (which depends on the first two) speeds up gccld time on eon
from 3.78s to 2.75s with a release build (a 28% speedup!).  This resolves
PR474.

llvm-svn: 24372
2005-11-16 06:09:47 +00:00
Chris Lattner
f7a530046f Fix handling of multiple unnamed globals with the same type
llvm-svn: 24362
2005-11-15 01:32:03 +00:00
Chris Lattner
5cafdc4edc Add some dummy method impls
llvm-svn: 24345
2005-11-13 03:26:33 +00:00
Chris Lattner
4584142363 Move some methods around. Refactor the parts of TypeMap that do not depend
on its template arguments into a base class so that the code isn't duplicated
5 times.

llvm-svn: 24343
2005-11-13 03:14:09 +00:00
Chris Lattner
150cfb2968 Split the type refinement case completely out of the type-becomes-concrete
case, simplifying the code.

llvm-svn: 24340
2005-11-13 01:58:06 +00:00
Chris Lattner
6e3f8ee849 Separate the type-became-concrete case from the type-is-resolved case, the
former of which takes much less work than the later.  This speeds up linking
eon from 3.749 to 3.637s with a release build (about 3%).

llvm-svn: 24338
2005-11-13 01:27:50 +00:00
Chris Lattner
cda6fc6409 Unswitch a loop, add more assertions, eliminate use of removeUserFromConcrete.
llvm-svn: 24324
2005-11-12 08:39:48 +00:00
Chris Lattner
2d82c5ba58 Tiny speedup, improve comments and code organization.
llvm-svn: 24323
2005-11-12 08:22:41 +00:00
Chris Lattner
5b42a5ea1a print section info
llvm-svn: 24313
2005-11-12 00:10:19 +00:00
Andrew Lenharth
dca2f13e76 continued readcyclecounter support
llvm-svn: 24300
2005-11-11 16:47:30 +00:00
Chris Lattner
77c3b97f5d Fix the optimized code handling of user asm strings
llvm-svn: 24296
2005-11-10 23:24:26 +00:00
Chris Lattner
32a3905ffc speedup the common case where nothing needs to be quoted
llvm-svn: 24294
2005-11-10 21:47:01 +00:00
Chris Lattner
8dfe3bb6be Allow per-character control over what target assemblers allow in symbol
names.  This also changes the default to allow all of "$_." in addition
to letters and numbers as symbol names.  If you don't want this, use
markCharUnacceptable to remove one of these or markCharAcceptable to add
to the set.  This corresponds with what GAS accepts by default.

Also, this includes some minor speedups

llvm-svn: 24293
2005-11-10 21:40:01 +00:00
Chris Lattner
2ba7f5a64d Add a new option for targets that accept quoted labels.
llvm-svn: 24283
2005-11-10 19:30:07 +00:00
Chris Lattner
6b9d854bad remove the M instance var
llvm-svn: 24281
2005-11-10 19:02:18 +00:00
Chris Lattner
6e7e5fab70 Make this more efficient of the common case where we are only mangling globals.
Do not mangle internal global names that do not collide with anything.

This gives us strings that now look like this:

__2E_str_1:                             ; '.str_1'
        .asciz  "foo"

instead of this:

l1__2E_str_1:                           ; '.str_1'
        .asciz  "foo"

llvm-svn: 24277
2005-11-10 18:48:58 +00:00
Chris Lattner
6a14d020a3 Force packed vectors to be a power of two in length.
llvm-svn: 24264
2005-11-10 01:40:59 +00:00
Chris Lattner
6991a6f23f print alignment info for globals and functions
llvm-svn: 24212
2005-11-06 06:48:53 +00:00
Chris Lattner
c6ef0112c0 verify that alignments are always a power of 2
llvm-svn: 24200
2005-11-05 21:57:54 +00:00
Chris Lattner
8eee9a6234 fix printing the alignment directive
llvm-svn: 24197
2005-11-05 21:20:34 +00:00
Nate Begeman
f299b9fb03 Add support alignment of allocation instructions.
Add support for specifying alignment and size of setjmp jmpbufs.

No targets currently do anything with this information, nor is it presrved
in the bytecode representation.  That's coming up next.

llvm-svn: 24196
2005-11-05 09:21:28 +00:00
Chris Lattner
fd80437e76 Fix an iterator invalidation problem in code used by the -strip pass
llvm-svn: 24124
2005-10-31 18:42:37 +00:00
Chris Lattner
99b65b821a Allow $
llvm-svn: 23721
2005-10-14 01:28:34 +00:00
Chris Lattner
5adabfc4fb add a hack to work around broken VC++ scoping rules. Thx to JeffC for pointing
this out to me

llvm-svn: 23655
2005-10-07 05:23:36 +00:00
Chris Lattner
b98aa6cc83 refactor a bit of code.
When moving constant entries in 'Map' if the entry is the representative
constant for the abstractypemap, make sure to update it as well.  This
fixes the bcreader failures from last night on several C++ apps.

llvm-svn: 23628
2005-10-04 21:35:50 +00:00
Chris Lattner
0fcb065305 Minor speedup to avoid array searches given a Use*. This speeds up bc reading
of the python test from 1:00 to 54s.

llvm-svn: 23627
2005-10-04 18:47:09 +00:00
Chris Lattner
e2a54ddd33 Change the signature of replaceUsesOfWithOnConstant. The bool was always
true dynamically.  Finally, pass the Use* that replaceAllUsesWith has into
the method for future use.

llvm-svn: 23626
2005-10-04 18:13:04 +00:00
Chris Lattner
8cce7373f7 For large constants (e.g. arrays and structs with many elements) just
creating the keys and doing comparisons to index into 'Map' takes a lot
of time.  For these large constants, keep an inverse map so that 'remove'
and move operations are much faster.

This speeds up a release build of the bc reader on Eric's nasty python
bytecode file from 1:39 to 1:00s.

llvm-svn: 23624
2005-10-04 17:48:46 +00:00
Chris Lattner
6627e8e4b5 minor cleanup/fastpath for the bcreader. This speeds up the bcreader
from 1:41 -> 1:39 on the large python .bc file in a release build.

llvm-svn: 23623
2005-10-04 16:52:46 +00:00
Chris Lattner
5d68585bb1 implement the struct version of the array speedup, speeding up the
testcase a bit more from 1:48 -> 1.40.

llvm-svn: 23619
2005-10-04 01:17:50 +00:00
Chris Lattner
eb44192fe0 Change ConstantArray::replaceUsesOfWithOnConstant to attempt to update
constant arrays in place instead of reallocating them and replaceAllUsesOf'ing
the result.  This speeds up a release build of the bcreader from:

136.987u 120.866s 4:24.38
to
49.790u 49.890s 1:40.14

... a 2.6x speedup parsing a large python bc file.

llvm-svn: 23614
2005-10-03 22:51:37 +00:00
Chris Lattner
ae1bdaf67e move some methods, no other changes
llvm-svn: 23613
2005-10-03 21:58:36 +00:00
Chris Lattner
6a65c397f3 minor microoptimizations
llvm-svn: 23612
2005-10-03 21:56:24 +00:00
Chris Lattner
20786460b5 Split SimpleConstantVal up into its components, so each Constant subclass getsa different enum value. This allows 'classof' for these to be really simple,not needing to call getType() anymore.
This speeds up isa/dyncast/etc for constants, and also makes them smaller.
For example, the text section of a release build of InstCombine.cpp shrinks
from 230037 bytes to 216363 bytes, a 6% reduction.

llvm-svn: 23467
2005-09-27 06:09:08 +00:00
Chris Lattner
26a6005735 Add support for a marker byte that indicates that we shouldn't add the user
prefix to a symbol name

llvm-svn: 23421
2005-09-24 08:24:28 +00:00
Jim Laskey
5f57048c62 Move code dependency for MathExtras.h out of Constants.h.
llvm-svn: 22840
2005-08-17 20:06:22 +00:00
Jim Laskey
61e3d7bca5 Culling out use of unions for converting FP to bits and vice versa.
llvm-svn: 22838
2005-08-17 19:34:49 +00:00
Andrew Lenharth
972c05771c only build .a on alpha
llvm-svn: 22787
2005-08-14 15:14:34 +00:00
Andrew Lenharth
5f4a72a18e Testing a variable before it is defined doesn't work so well. It is a fairly small thing, so just let everyone build the .a file
llvm-svn: 22783
2005-08-13 14:58:23 +00:00
Andrew Lenharth
d9a0c60da4 Fix oversized GOT problem with gcc-4 on alpha
llvm-svn: 22777
2005-08-13 05:09:50 +00:00
Chris Lattner
4e2d62ba5d Add a helper method
llvm-svn: 22768
2005-08-12 22:14:06 +00:00
Chris Lattner
e698d06904 add new helper function
llvm-svn: 22698
2005-08-08 05:21:50 +00:00
Chris Lattner
fbcacf822a PHINode::hasConstantValue should never return the PHI itself, even if the
PHI is its only operand.

llvm-svn: 22676
2005-08-05 15:37:31 +00:00
Chris Lattner
b80ff334d8 Fix an iterator invalidation problem when we decide a phi has a constant value
llvm-svn: 22675
2005-08-05 15:34:10 +00:00
Chris Lattner
f112b97227 Invoke instructions do not dominate all successors
llvm-svn: 22671
2005-08-05 01:03:27 +00:00
Chris Lattner
4a3dc26192 Now that hasConstantValue is more careful w.r.t. returning values that only
dominate the PHI node, this code can go away.  This also makes passes more
aggressive, e.g. implementing Transforms/CondProp/phisimplify2.ll

llvm-svn: 22670
2005-08-05 01:02:04 +00:00
Chris Lattner
f9aa29ef5c Use the bool argument to hasConstantValue to decide whether the client is
prepared to deal with return values that do not dominate the PHI.  If we
cannot prove that the result dominates the PHI node, do not return it if
the client can't cope.

llvm-svn: 22669
2005-08-05 01:00:58 +00:00
Chris Lattner
752c3e7b35 Mark hasConstantValue as a const method
llvm-svn: 22666
2005-08-05 00:49:06 +00:00