Chris Lattner
3cf502890c
correct the computation of the isAbstract bit for types.
...
llvm-svn: 20533
2005-03-09 17:34:27 +00:00
Reid Spencer
220e2f8519
Fix a typo in an assertion comment.
...
Patch contributed by Vladimir Merzliakov.
llvm-svn: 20529
2005-03-09 15:19:41 +00:00
Chris Lattner
46653269f4
rename insertEntry to insert
...
llvm-svn: 20484
2005-03-06 05:55:40 +00:00
Chris Lattner
b1ac7bc7f3
Merge SymbolTable::removeEntry into SymbolTable::remove, its only caller
...
llvm-svn: 20483
2005-03-06 05:51:09 +00:00
Chris Lattner
57a7a2d1cf
Delete the really inefficient method: void remove(const Type* Typ);
...
Speed up the symbol stripping code by avoiding a linear search of the
type table.
Get rid of removeEntry(type_iterator), since 'remove' is exactly the same
operation.
llvm-svn: 20481
2005-03-06 05:46:41 +00:00
Chris Lattner
f1d5e180ce
Remove some really gross and hard to understand code now that
...
InternallyInconsistent is always false.
llvm-svn: 20477
2005-03-06 05:21:40 +00:00
Chris Lattner
4af779dcba
Simplify some code.
...
llvm-svn: 20476
2005-03-06 05:13:42 +00:00
Chris Lattner
eb5987ee06
remove these methods.
...
llvm-svn: 20474
2005-03-06 02:37:47 +00:00
Chris Lattner
ffa96dc848
This fixes PR531, a crash when running the CBE on a bytecode file.
...
The problem is that Function::renameLocalSymbols is iterating through
the symbol table planes, occasionally calling setName to rename a value
(which used to do a symbol table remove/insert pair).
The problem is that if there is only a single value in a particular type
plane that the remove will nuke the symbol table plane, and the insert
will create and insert a new one. This hoses Function::renameLocalSymbols
because it has an iterator to the old plane, under the (very reasonable)
assumption that simply renaming a value won't cause the type plane to
disappear.
This patch fixes the bug by making the rename operation a single atomic
operation, which has a side effect of making the whole thing faster too. :)
llvm-svn: 20469
2005-03-06 02:14:28 +00:00
Chris Lattner
b177010d51
remove all of the various setName implementations, consolidating them into
...
Value::setName, which is no longer virtual.
llvm-svn: 20464
2005-03-05 19:51:50 +00:00
Chris Lattner
80ba99a8f6
2nd arg to setName goes away.
...
llvm-svn: 20460
2005-03-05 19:02:15 +00:00
Chris Lattner
2bd3d67a8d
Constants never get names.
...
llvm-svn: 20459
2005-03-05 19:01:59 +00:00
Chris Lattner
005a4a476a
Remove the 2nd argument to Value::setName
...
llvm-svn: 20458
2005-03-05 19:01:49 +00:00
Misha Brukman
5b587350ee
Fix the spelling of the word `the'
...
llvm-svn: 20412
2005-03-02 23:17:31 +00:00
Chris Lattner
f9597dc689
Print the module ID as a comment.
...
llvm-svn: 20411
2005-03-02 23:12:40 +00:00
Chris Lattner
0bb2828efb
Fix a nasty order of evaluation bug that Gabor Greif ran into. Here's an
...
explanation from IRC:
|sabre| I think it's an order of evaluation thing
|sabre| for me, the RHS of the assignment is evaluated first
|sabre| getTypeDescription checks to see if ConcreteTypeDescription[Ty] contains anything
|sabre| since it doesn't, it computes and returns the value
|sabre| this gets put into the map.
|sabre| For you, the LHS is evaluated first.
|sabre| Map[Ty] (aka ConcreteTypeDescriptions[Ty]) inserts an empty string into the map, returning a reference
|sabre| getTypeDesc then sees the empty string in the map
|sabre| and returns it
|sabre| bork :)
llvm-svn: 20394
2005-03-02 03:54:43 +00:00
Chris Lattner
82480f68d7
recognize llvm.prefetch. Patch contributed by Justin Wick!
...
llvm-svn: 20377
2005-02-28 19:28:00 +00:00
Chris Lattner
c4205a6b93
Verify llvm.prefetch.
...
llvm-svn: 20376
2005-02-28 19:27:42 +00:00
Chris Lattner
af54bd6050
Fix some problems where the verifier would crash on invalid input instead of
...
reporting the problem and exiting.
llvm-svn: 20302
2005-02-24 16:58:29 +00:00
Chris Lattner
902d9dc660
switch instructions only allow constantints for their values, be more specific.
...
llvm-svn: 20298
2005-02-24 05:32:09 +00:00
Chris Lattner
8044aa8d33
add a new method.
...
llvm-svn: 20293
2005-02-24 02:37:26 +00:00
Chris Lattner
bfb6a94126
make this more efficient. Scan up to 16 nodes, not the whole list.
...
llvm-svn: 20289
2005-02-23 16:53:04 +00:00
Chris Lattner
a91c25c69b
new method
...
llvm-svn: 20288
2005-02-23 16:51:11 +00:00
Chris Lattner
0ce5361846
Reduce the amount of searching this assertion does. On a testcase of mine,
...
this reduces the time for -simplifycfg in a debug build from 106s to 14.82s
llvm-svn: 20286
2005-02-23 07:09:08 +00:00
Chris Lattner
0ac02cee3c
Nuke blank line.
...
llvm-svn: 20154
2005-02-13 17:54:21 +00:00
Chris Lattner
343a831bab
Fix test/Regression/Assembler/2005-02-09-AsmWriterStoreBug.ll
...
llvm-svn: 20089
2005-02-09 17:45:03 +00:00
Chris Lattner
ec9411df83
Instead of initializing the volatile field, use accessors to set it.
...
llvm-svn: 20045
2005-02-05 01:38:38 +00:00
Chris Lattner
d73939a8ed
Initialize new field.
...
llvm-svn: 20044
2005-02-05 01:37:58 +00:00
Chris Lattner
839b0ef616
Updates for new use list changes.
...
llvm-svn: 19961
2005-02-01 01:24:21 +00:00
Chris Lattner
1cbca58b87
Update for API change.
...
llvm-svn: 19960
2005-02-01 01:24:01 +00:00
Chris Lattner
382abe80a0
Improve conformance with the Misha spelling benchmark suite
...
llvm-svn: 19930
2005-01-30 00:09:23 +00:00
Chris Lattner
aa4ae8f5b3
Adjust to ilist changes.
...
llvm-svn: 19923
2005-01-29 18:41:12 +00:00
Chris Lattner
35281b677a
Make sure that we always grow a multiple of 2 operands.
...
llvm-svn: 19902
2005-01-29 01:05:12 +00:00
Chris Lattner
50d674e9da
Adjust to changes in User class.
...
llvm-svn: 19892
2005-01-29 00:35:33 +00:00
Chris Lattner
12f9442dc3
Merge InstrTypes.cpp into this file
...
Adjust to changes in the User class, operand handling is very different.
PHI node and switch statements must handle explicit resizing of operand
lists.
llvm-svn: 19891
2005-01-29 00:35:16 +00:00
Chris Lattner
5244a770c3
Adjust to changes in User class. Aggregate constants now must explicitly
...
manage their operands.
llvm-svn: 19890
2005-01-29 00:34:39 +00:00
Chris Lattner
a0498b9190
This file is now merged into Instructions.cpp
...
llvm-svn: 19889
2005-01-29 00:33:32 +00:00
Chris Lattner
f893f17907
Fix a nasty thinko in my previous commit.
...
llvm-svn: 19881
2005-01-28 23:17:27 +00:00
Chris Lattner
f24ea9cf5e
Fix ConstProp/2005-01-28-SetCCGEP.ll: indexing over zero sized elements does
...
not change the address.
llvm-svn: 19874
2005-01-28 19:09:51 +00:00
Misha Brukman
b0fce1668a
Fix grammar
...
llvm-svn: 19854
2005-01-27 06:46:38 +00:00
Jeff Cohen
7311de2af2
Use binary mode for reading/writing bytecode files
...
llvm-svn: 19751
2005-01-22 17:36:17 +00:00
Chris Lattner
1e5620dfe1
Make this compatible with the HP/intel compiler. Fix by Duraid, thanks!
...
llvm-svn: 19548
2005-01-14 15:53:26 +00:00
Chris Lattner
9dc8275f47
Allow arrays to have more than 4G elements.
...
llvm-svn: 19395
2005-01-08 20:19:51 +00:00
Chris Lattner
83deb67391
Add convenience method.
...
llvm-svn: 19321
2005-01-07 07:40:32 +00:00
Chris Lattner
97d3bf5049
No need to pessimize current code for future possibilities.
...
llvm-svn: 19311
2005-01-06 16:26:38 +00:00
Chris Lattner
6446c6fb34
To not break TBAA rules, use a union.
...
llvm-svn: 19280
2005-01-04 01:56:57 +00:00
Chris Lattner
043ec8bb61
Allow getZeroExtend and getSignExtend to work with boolean inputs.
...
llvm-svn: 19210
2005-01-01 15:59:57 +00:00
Chris Lattner
4faf86336e
Add a verifier assertion
...
llvm-svn: 18965
2004-12-15 20:23:49 +00:00
Chris Lattner
79c3a57af7
Change this method to return ulong, not uint, for 64-bit targets.
...
llvm-svn: 18906
2004-12-13 19:48:51 +00:00
Chris Lattner
5ba315dbbe
Check in the file I forgot last night, to solve all of the crashes in every
...
test in the suite. :(
llvm-svn: 18804
2004-12-11 22:10:29 +00:00
Alkis Evlogimenos
9b02192468
Fix writer to properly quote label names when they don't contain
...
simple characters.
llvm-svn: 18744
2004-12-10 05:41:10 +00:00
Chris Lattner
a7a804efdb
Work correctly with MSVC and ICC, patch contributed by Bjørn Wennberg
...
llvm-svn: 18631
2004-12-08 16:22:48 +00:00
Reid Spencer
657b3137a9
Revert the recent patches to "fix" ConstantFP::isValueValidForType. None
...
of them seem to work everywhere.
llvm-svn: 18598
2004-12-07 07:38:08 +00:00
Reid Spencer
66a5217325
Provide a missing header file.
...
llvm-svn: 18597
2004-12-07 07:08:08 +00:00
Reid Spencer
0db7313146
Fix some comments.
...
llvm-svn: 18596
2004-12-07 07:06:47 +00:00
Alkis Evlogimenos
3bcde892c3
Fix check for valid floats. Also use and HUGE_VALF instead
...
of std::numeric_limits, because they work in more platforms.
llvm-svn: 18593
2004-12-07 06:46:50 +00:00
Reid Spencer
d50c86f078
For PR387:\
...
Make only one print method to avoid overloaded virtual warnings when \
compiled with -Woverloaded-virtual
llvm-svn: 18589
2004-12-07 04:03:45 +00:00
Reid Spencer
25b1f95558
For PR409: \
...
Test the range of float constants to ensure we are not attempting to create a \
float constant using a double value that is out of range for a float
llvm-svn: 18585
2004-12-06 22:18:37 +00:00
Chris Lattner
9c390fa13f
When printing out a function, make sure that local and global symbols
...
don't conflict. This fixes Assembler/2004-12-05-LocalGlobalSymtabConflict.ll
llvm-svn: 18532
2004-12-05 06:44:09 +00:00
Chris Lattner
cdcd7126f1
Add a new method
...
llvm-svn: 18531
2004-12-05 06:43:27 +00:00
Alkis Evlogimenos
7202acacf7
Check if a block has a terminator first before calling front() on
...
it. If a block has a terminator then it is certainly non-empty so the
verifier will not crash on it.
llvm-svn: 18484
2004-12-04 02:30:42 +00:00
Alkis Evlogimenos
edf490b75e
Make error msg reflect what exactly went wrong.
...
llvm-svn: 18478
2004-12-04 01:25:06 +00:00
Chris Lattner
08d8b2ecaa
Get GEP's working with packed types. Contributed by Morten Ofstad!
...
llvm-svn: 18404
2004-12-01 17:12:16 +00:00
Chris Lattner
e561ef0261
Add method
...
llvm-svn: 18368
2004-11-30 02:51:53 +00:00
Chris Lattner
7647235f0f
Fix test/Regression/CFrontend/2003-11-01-EmptyStructCrash.c
...
llvm-svn: 18115
2004-11-22 19:15:27 +00:00
Chris Lattner
d9770db639
Fix memory leaks, patch contributed by Morten Ofstad!
...
llvm-svn: 17999
2004-11-19 17:09:48 +00:00
Chris Lattner
7a2566c4ff
Add hooks to free all memory allocated by the singleton factories in these
...
files. Patch contributed by Morten Ofstad!
llvm-svn: 17995
2004-11-19 16:39:44 +00:00
Chris Lattner
a06c8cfe80
These methods are inlined
...
llvm-svn: 17958
2004-11-18 17:47:13 +00:00
Alkis Evlogimenos
b9e38d3cc5
Make ReturnInst accept a value of type void as the return value. The
...
ReturnInst constructed is the same as if NULL was passed instead of
the void value.
llvm-svn: 17923
2004-11-17 21:02:25 +00:00
Chris Lattner
5a2ce1faab
Generalize this code to turn any cast-to-first-element-of into a gep constexpr
...
llvm-svn: 17914
2004-11-17 17:59:35 +00:00
Chris Lattner
4725ecbbd6
Minor cleanup and speedup. This reduces link-time for 252.eon from 35.5s
...
to 34.7s with a profile build.
llvm-svn: 17906
2004-11-16 20:39:04 +00:00
Chris Lattner
7fdc458443
Make this function work with non-abstract types.
...
llvm-svn: 17905
2004-11-16 20:30:53 +00:00
Misha Brukman
a3b5e5f569
Remove extra space char
...
llvm-svn: 17834
2004-11-15 19:30:05 +00:00
Reid Spencer
e51435be09
Moved to lib/Linker
...
llvm-svn: 17786
2004-11-14 22:15:31 +00:00
Misha Brukman
8d4e1d62dd
GhostLinkage not allowed in LLVM AsmWriter, either
...
llvm-svn: 17751
2004-11-14 21:04:34 +00:00
Reid Spencer
7090e6a875
Stop propagating method names that violate the coding standard
...
llvm-svn: 17498
2004-11-05 22:15:36 +00:00
Misha Brukman
dba13ac3cb
The Alpha (tm) intrinsics have never been used anywhere
...
llvm-svn: 17340
2004-10-29 18:43:17 +00:00
Alkis Evlogimenos
e88c2aaed7
Gep indices must be of int, uint, long or ulong type.
...
llvm-svn: 17313
2004-10-28 06:43:38 +00:00
Reid Spencer
d3f7233495
Change Library Names Not To Conflict With Others When Installed
...
llvm-svn: 17286
2004-10-27 23:18:45 +00:00
Chris Lattner
dd0094e4ed
Convert 'struct' to 'class' in various places to adhere to the coding standards
...
and work better with VC++. Patch contributed by Morten Ofstad!
llvm-svn: 17281
2004-10-27 16:14:51 +00:00
Alkis Evlogimenos
4c30220f3a
Make this actually work.
...
llvm-svn: 17199
2004-10-24 03:02:16 +00:00
Alkis Evlogimenos
a893aad8fb
Add ConstantExpr::getSizeOf(Type*).
...
llvm-svn: 17196
2004-10-24 01:41:10 +00:00
Reid Spencer
e48ba34fd4
We won't use automake
...
llvm-svn: 17155
2004-10-22 03:35:04 +00:00
Reid Spencer
ce514b1c2c
Initial automake generated Makefile template
...
llvm-svn: 17136
2004-10-18 23:55:41 +00:00
Chris Lattner
c088680a5f
fold gep undef, ... -> undef
...
This comes up many times in perlbmk and probably others.
llvm-svn: 17100
2004-10-17 21:54:55 +00:00
Chris Lattner
e5aa085c1d
Fix constant folding relational operators with undef operands.
...
llvm-svn: 17077
2004-10-17 04:01:51 +00:00
Chris Lattner
8c86882a99
Implement constant folding of undef values.
...
llvm-svn: 17070
2004-10-16 23:31:32 +00:00
Chris Lattner
93bf5a8066
Add support for undef and unreachable
...
llvm-svn: 17041
2004-10-16 18:08:06 +00:00
Chris Lattner
8824a5ee1c
Implement UndefValue class
...
llvm-svn: 17040
2004-10-16 18:07:16 +00:00
Chris Lattner
d3844cc216
Move the implementation of the instructions clone methods to this file so
...
that the vtables for these classes are only instantiated in this translation
unit, not in every xlation unit they are used.
llvm-svn: 17026
2004-10-15 23:52:53 +00:00
Misha Brukman
209f5ea32b
Add a space between the type and name of value when printing error message
...
llvm-svn: 17022
2004-10-15 23:08:50 +00:00
Chris Lattner
44e34a155c
Make sure any client of Dominators.h links in Dominators.cpp
...
Patch by Morten Ofstad
llvm-svn: 16987
2004-10-14 15:47:16 +00:00
Reid Spencer
e6418ec30f
Update to reflect changes in Makefile rules.
...
llvm-svn: 16950
2004-10-13 11:46:52 +00:00
Chris Lattner
58435df175
Minor tweaks
...
llvm-svn: 16929
2004-10-12 04:32:37 +00:00
Chris Lattner
8428411c46
Implement a new method
...
llvm-svn: 16927
2004-10-12 04:20:25 +00:00
Chris Lattner
63ba63bb56
Allow creation of GEP constantexprs with a vector of value* operands as
...
well as a vector of constant*'s. It turns out that this is more efficient
and all of the clients want to do that, so we should cater to them.
llvm-svn: 16923
2004-10-11 22:52:25 +00:00
Chris Lattner
6496308d18
Implement remove/eraseFromParent methods
...
llvm-svn: 16922
2004-10-11 22:21:39 +00:00
Chris Lattner
f8380b953a
If we are trying to create a ConstantExpr cast that is really a GEP to the
...
first element of an array, return a GEP instead of a cast. This allows us
to transparently fold this:
int* getelementptr (int* cast ([100 x int]* %Gbody to int*), int 40)
into this:
int* getelementptr ([100 x int]* %Gbody, int 0, int 40)
llvm-svn: 16911
2004-10-11 03:57:30 +00:00
Reid Spencer
1b7459b29d
Initial version of automake Makefile.am file.
...
llvm-svn: 16893
2004-10-10 22:20:40 +00:00
Chris Lattner
50e55bcdb0
Unfortunately the fix for the previous bug introduced the previous
...
exponential behavior (bork!). This patch processes stuff with an
explicit SCC finder, allowing the algorithm to be more clear,
efficient, and also (as a bonus) correct! This gets us back to taking
0.6s to disassemble my horrible .bc file that previously took something
> 30 mins.
llvm-svn: 16811
2004-10-07 19:20:48 +00:00
Chris Lattner
dfdbd62d37
Fix a bug in my previous change. Unfortunately this reverts most of the
...
speedup, but has the advantage of not breaking a bunch of programs!
llvm-svn: 16806
2004-10-07 16:19:40 +00:00
Chris Lattner
c2563bf614
Change Type::isAbstract to have better comments, a more correct name
...
(PromoteAbstractToConcrete), and to use a set to avoid recomputation.
In particular, this set eliminates the potentially exponential cases
from this little recursive algorithm.
On a particularly nasty testcase, llvm-dis on the .bc file went from 34
minutes (which is when I killed it, it still hadn't finished) to 0.57s.
Remember kids, exponential algorithms are bad.
llvm-svn: 16772
2004-10-06 16:36:46 +00:00
Chris Lattner
6023408a6e
Make sure the const bit gets inherited correctly when linking declarations
...
of disagreeing constness. This fixes
test/Regression/Linker/ConstantGlobals[123].ll
llvm-svn: 16692
2004-10-05 02:28:11 +00:00
Chris Lattner
7af052f5c8
Make sure to check select instructions for generic instruction properties
...
llvm-svn: 16597
2004-09-29 21:19:28 +00:00
Chris Lattner
da5c635143
Don't use DominatorSet::dominates for intra-block instruction dom checks.
...
This method is linear time in the size of the basic block, which is very
bad for large basic blocks. On the Assembler/2004-09-29-VerifierIsReallySlow.llx
testcase, the verifier changes from taking 50s to 0.23s with this patch.
llvm-svn: 16593
2004-09-29 20:07:45 +00:00
Chris Lattner
43c0372c0b
'Pass' should now not be derived from by clients. Instead, they should derive
...
from ModulePass. Instead of implementing Pass::run, then should implement
ModulePass::runOnModule.
llvm-svn: 16436
2004-09-20 04:48:05 +00:00
Chris Lattner
3acc541d97
'Pass' should now not be derived from by clients. Instead, they should derive
...
from ModulePass. Instead of implementing Pass::run, then should implement
ModulePass::runOnModule.
Also, fix some undefined behavior, expecting | on booleans to evaluate
left-to-right.
llvm-svn: 16435
2004-09-20 04:47:19 +00:00
Alkis Evlogimenos
95075646ab
When creating constant arrays check that the initializer vector is the
...
same size as the one in the array type.
llvm-svn: 16354
2004-09-15 02:32:15 +00:00
Reid Spencer
7bd9d86b65
Okay, the list of link-time passes wasn't such a hot idea. Its prone to
...
error. We'll strategize on this when we have multiple front ends to deal
with. For now llvm-ld just runs a standard set of transforms.
llvm-svn: 16333
2004-09-14 05:43:23 +00:00
Chris Lattner
99d5ceac0d
Don't print newlines between passes in the pass list.
...
Note to self: sentences end with ".", not "...".
Note to reid: sentences end with ".", not "". :)
llvm-svn: 16332
2004-09-14 05:06:58 +00:00
Chris Lattner
c131f05ebb
Don't print newlines between each library in the deplibs list.
...
llvm-svn: 16331
2004-09-14 04:51:44 +00:00
Reid Spencer
4a1593ebd2
Add support for the link-time pass list to Modules.
...
llvm-svn: 16321
2004-09-13 23:44:23 +00:00
Reid Spencer
870976f573
Implement support for dependent libraries. The "source" module's dependent
...
libraries list is merged into the "destination" module's list. Also, if the
source module is one of the dependent libraries, it is removed from the
list.
llvm-svn: 16282
2004-09-11 04:25:17 +00:00
Alkis Evlogimenos
04207a7cf6
Add assertion descriptiosn on type mismatches when creating
...
ConstantArray and ConstantPacked objects.
llvm-svn: 16261
2004-09-10 04:16:59 +00:00
Reid Spencer
c4abcbefb1
Changes For Bug 352
...
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137
2004-09-01 22:55:40 +00:00
Reid Spencer
0c3bada696
Add an assert to cature null Operands. It is better to catch it here than
...
to SIGSEGV in the bowels of isa<...> later.
llvm-svn: 16098
2004-08-29 19:37:59 +00:00
Reid Spencer
1605d22f77
Give the -time-passes tool option a global storage location so that its
...
value can be discovered by the various LLVM tools.
llvm-svn: 16032
2004-08-24 17:52:35 +00:00
Chris Lattner
aa175129ea
Fix a nasty bug that Nate ran into. In particular, instead of emitting a 2+MB
...
error message, print out:
llvm-link: error linking in 'g.2.rbc': Global Variable Collision on
' %struct.D_Reduction* %d_reduction_10_gram' - External linkage globals have
different initializers
That's a bit more concise, huh?
llvm-svn: 15958
2004-08-21 00:50:59 +00:00
Reid Spencer
448910c216
Fix a bug found exposed by: Regression/Other/2004-08-20-PackedControlFlow.ll
...
Packed types need to be allowed in type statements too.
Patch provided by Brad Jones.
llvm-svn: 15953
2004-08-20 15:37:30 +00:00
Brian Gaeke
01636f4e0f
Packed types, brought to you by Brad Jones
...
llvm-svn: 15938
2004-08-20 06:00:58 +00:00
Chris Lattner
5b69d2d1b5
Check constant expression validity more strictly
...
llvm-svn: 15883
2004-08-17 17:28:46 +00:00
Chris Lattner
a54012917a
Allow an arbitrary prefix
...
llvm-svn: 15865
2004-08-17 06:06:54 +00:00
Misha Brukman
7c32d35f9e
Move these files (which are dependent on VMCore) into VMCore
...
llvm-svn: 15825
2004-08-16 19:04:36 +00:00
Reid Spencer
b9ab0ef60d
Fix PR422.
...
Ouch! Changes in the lazy initialization code caused each incorporated
function to reprocess the entire function on every lookup of a value's
slot number. This caused a horrible slowdown in all functions. This
fix made llvm-dis go from "longer than I care to wait" (minutes) on a large
test case to 0.53 seconds.
llvm-svn: 15818
2004-08-16 07:46:33 +00:00
Alkis Evlogimenos
c1754b874d
Split assertion to two in order to give better assertion messages.
...
llvm-svn: 15543
2004-08-06 14:33:37 +00:00
Alkis Evlogimenos
8fb6d20345
Make GlobalVariable constructor assert when an initializer is of
...
incorrect type.
llvm-svn: 15519
2004-08-05 11:28:34 +00:00
Chris Lattner
a36473bd83
Fix another minor problem that exists if you ahve multiple functions with
...
nonunifiable types but the same name. Down with PR411!
llvm-svn: 15511
2004-08-04 22:39:54 +00:00
Chris Lattner
a359f9e730
Fix a typeo
...
llvm-svn: 15510
2004-08-04 22:29:05 +00:00
Chris Lattner
b22ba044c1
Add a hack to work around a problem my changes exposed
...
llvm-svn: 15509
2004-08-04 22:26:13 +00:00
Chris Lattner
4107bfcf9b
Fix a latent bug exposed by my recent changes
...
llvm-svn: 15498
2004-08-04 18:50:09 +00:00
Chris Lattner
586734c438
Fix a major regression in my previous checkin
...
llvm-svn: 15486
2004-08-04 08:30:43 +00:00
Alkis Evlogimenos
bdd0467a1e
Stop using getValues().
...
llvm-svn: 15485
2004-08-04 08:08:13 +00:00
Alkis Evlogimenos
72232b4a01
Stop using getValues().
...
llvm-svn: 15482
2004-08-04 08:02:59 +00:00
Chris Lattner
3f4d9ffde5
FindGlobalNamed used to take 2.92s out of 8.39s running a profile build of
...
gccld -disable-opt on 252.eon.
This patch deletes it and replaces it with a map. The proper fix for this
is to fix PR411, but this will do in the short term.
gccld on eon now takes 5.51s, which is 50% faster than before this patch. :)
llvm-svn: 15480
2004-08-04 07:44:58 +00:00
Chris Lattner
f140ae0851
I swear I compiled this, really I did.
...
llvm-svn: 15467
2004-08-04 07:28:06 +00:00
Chris Lattner
5cc9a6fda7
Factor some code out, no substantial change.
...
llvm-svn: 15466
2004-08-04 07:05:54 +00:00
Chris Lattner
4a2f261fab
Concisify some code
...
Do not call FindGlobalNamed when we know we will ignore the result (because
we are not going to link a static symbol anyway). This speeds up
gccld -disable-opt on 252.eon from 8.63s to 8.39s.
llvm-svn: 15465
2004-08-04 06:05:47 +00:00
Chris Lattner
100d0875ba
Implement a FIXME, by not searching linearly through a map to remove an
...
element. This speeds up the bytecode reader from 12.86s to 8.72s on 252.eon.
llvm-svn: 15463
2004-08-04 04:48:01 +00:00
Chris Lattner
8eda57f392
Add a cast
...
llvm-svn: 15457
2004-08-04 02:27:17 +00:00
Chris Lattner
71bbf1ea00
Change SymbolTable::insertEntry to be more careful about how many map
...
lookups it does. This shaves another 5% off of bcreading 252.eon. Note that
the proper solution to this problem is to fix PR411, but that will have to
wait until later.
llvm-svn: 15455
2004-08-04 00:37:31 +00:00
Misha Brukman
58104df77b
Fix #includes of i*.h => Instructions.h as per PR403.
...
llvm-svn: 15334
2004-07-29 17:30:56 +00:00
Misha Brukman
8346db7afe
Fix #includes of i*.h files => Instructions.h as per PR403
...
llvm-svn: 15327
2004-07-29 16:53:53 +00:00
Alkis Evlogimenos
09d3f2533c
Merge i*.cpp definitions into Instructions.cpp as part of bug403.
...
llvm-svn: 15326
2004-07-29 12:33:25 +00:00
Alkis Evlogimenos
fb27f702ca
Merge i*.h headers into Instructions.h as part of bug403.
...
llvm-svn: 15325
2004-07-29 12:17:34 +00:00
Chris Lattner
687d568cf1
alloca void makes no sense
...
llvm-svn: 15262
2004-07-27 07:30:02 +00:00
Reid Spencer
a23e595275
Avoid use of size(), which counts, in favor of other mechanisms.
...
llvm-svn: 15221
2004-07-25 21:44:54 +00:00
Reid Spencer
07e3e1c29b
Adjust to new Module.h interface for dependent libraries
...
Only write the target triple and deplibs if they are non-empty.
llvm-svn: 15216
2004-07-25 21:29:43 +00:00
Reid Spencer
11fc1457c0
bug 263:
...
Ensure the list of libraries is cleared.
llvm-svn: 15212
2004-07-25 18:08:57 +00:00
Reid Spencer
9077f12bb0
bug 263:
...
Add ability to write target triple and dependent libraries information.
llvm-svn: 15211
2004-07-25 18:08:18 +00:00
Alkis Evlogimenos
d4ef731684
Use name.empty() instead of testing against equality with the empty
...
string.
llvm-svn: 15191
2004-07-25 06:16:52 +00:00
Alkis Evlogimenos
d5f5b018e9
Disallow creation of named values of type void.
...
llvm-svn: 15190
2004-07-25 06:07:15 +00:00
Brian Gaeke
bdab8e50cd
Fix problem with inserting FunctionPasses that depend on ImmutablePasses
...
(e.g., LICM) into FunctionPassManagers. The problem is that we were
using a C-style cast to cast required analysis passes to PassClass*, but
if it's a FunctionPassManager, and the required analysis pass is an
ImmutablePass, the types aren't really compatible, so the C-style cast
causes a crash.
llvm-svn: 15140
2004-07-23 19:35:50 +00:00
Chris Lattner
59c0771263
Updates to gc intrinsics, contributed by Tobias Nurmiranta
...
llvm-svn: 15096
2004-07-22 05:50:01 +00:00
Chris Lattner
6dbdddfa28
classof implementations are now inlined
...
llvm-svn: 14987
2004-07-19 00:59:10 +00:00
Chris Lattner
1353dd5917
Method now returns null, dtor is inlined
...
llvm-svn: 14983
2004-07-19 00:55:35 +00:00
Chris Lattner
80105701f5
Fix infinite loop gccld'ing povray
...
llvm-svn: 14962
2004-07-18 08:12:57 +00:00
Reid Spencer
78477eb62b
Shrink some code.
...
llvm-svn: 14956
2004-07-18 01:04:19 +00:00
Reid Spencer
4a586ee919
bug 122:
...
- Move these functions from other places
- Provide implementations of Constant class overrides in GlobalValue
llvm-svn: 14936
2004-07-18 00:06:26 +00:00
Reid Spencer
ad3ee0e6bb
bug 122:
...
- Replace ConstantPointerRef usage with GlobalValue usage
- Replace tabs.
llvm-svn: 14935
2004-07-18 00:03:48 +00:00
Reid Spencer
873e776581
bug 122:
...
- Correct an assert to not have redundant isa<GlobalValue>
llvm-svn: 14934
2004-07-18 00:02:41 +00:00
Reid Spencer
27b74ad249
bug 122:
...
- Correct isa<Constant> for GlobalValue subclass
llvm-svn: 14933
2004-07-18 00:01:50 +00:00
Reid Spencer
4005f11ca3
bug 122:
...
- Correct isa<Constant> for GlobalValue subclass
- Fix some tabs and indentation.
llvm-svn: 14932
2004-07-17 23:57:36 +00:00
Reid Spencer
d83e76d112
bug 122:
...
- Module doesn't need to manage ConstantPointerRefs any more.
llvm-svn: 14931
2004-07-17 23:53:23 +00:00
Reid Spencer
0e268122cc
bug 122:
...
- Replace ConstantPointerRef usage with GlobalValue usage
- Correct isa<Constant> for GlobalValue subclass
llvm-svn: 14930
2004-07-17 23:50:57 +00:00
Reid Spencer
daba673c69
bug 122:
...
- Move GlobalValue and GlobalVariable implementations to Globals.cpp
llvm-svn: 14929
2004-07-17 23:50:19 +00:00
Reid Spencer
56e2bed436
bug 122:
...
- Replace ConstantPointerRef usage with GlobalValue usage
- Minimize redundant isa<GlobalValue> usage
- Correct isa<Constant> for GlobalValue subclass
- Delete ConstantPointerRef member function implementations
llvm-svn: 14928
2004-07-17 23:48:33 +00:00
Reid Spencer
bc38cd572f
bug 122:
...
- Replace ConstantPointerRef usage with GlobalValue usage
- Minimize redundant isa<GlobalValue> usage
- Correct isa<Constant> for GlobalValue subclass
llvm-svn: 14927
2004-07-17 23:47:01 +00:00
Alkis Evlogimenos
ddd1db50f9
Add convinience constructor for function calls with two args.
...
llvm-svn: 14885
2004-07-16 12:04:28 +00:00
Chris Lattner
9b03d18729
IA64 compat
...
llvm-svn: 14867
2004-07-16 00:08:28 +00:00
Chris Lattner
94212f7102
Fixes for PR341
...
llvm-svn: 14847
2004-07-15 02:51:31 +00:00
Chris Lattner
d1b726d18f
Implement folding of expressions like 'uint cast (int* getelementptr (int*
...
null, uint 1) to uint)' to a constant integer. We can only do this with
primitive LLVM types, because other types have target-specific sizes.
llvm-svn: 14837
2004-07-15 01:16:59 +00:00
Chris Lattner
74bd192fba
Implement new helper methods for creating two-index GEP instructions
...
llvm-svn: 14821
2004-07-14 18:14:33 +00:00
Chris Lattner
183766f21e
Make Argument::print more resilient to non-verifiable IR
...
llvm-svn: 14801
2004-07-13 23:14:34 +00:00
Chris Lattner
1a1afa3566
Catch aggregates passed by value sooner rather than later.
...
llvm-svn: 14800
2004-07-13 20:09:51 +00:00
Chris Lattner
3f023d6df9
implement new helper method
...
llvm-svn: 14776
2004-07-12 20:35:11 +00:00
Chris Lattner
d581590c73
Fix a really nasty logic error that VC noticed.
...
Reid, this might matter to you :)
llvm-svn: 14774
2004-07-12 20:27:31 +00:00
Chris Lattner
b704df8365
Implement new method
...
llvm-svn: 14767
2004-07-12 01:17:34 +00:00
Reid Spencer
d45c27da89
Replace use of defunct Type::setName method with SymbolTable::insert.
...
Patch found and provided by Vladimir Merzliakov. Thanks Vladimir!
llvm-svn: 14732
2004-07-10 16:37:42 +00:00
Chris Lattner
d3f73edc53
Remove unused method
...
llvm-svn: 14726
2004-07-09 16:48:13 +00:00
Chris Lattner
ef1e8119ec
The uid mapping is no more
...
llvm-svn: 14708
2004-07-08 22:31:09 +00:00
Chris Lattner
77a943eb4c
Eliminate the SignedType and UnsignedType classes.
...
llvm-svn: 14695
2004-07-08 17:30:07 +00:00
Misha Brukman
f7987f7c2a
There is no error message to print out, end sentence with `!'
...
llvm-svn: 14678
2004-07-07 21:22:05 +00:00
Reid Spencer
ff9f74082f
Fix for bug 391.
...
Improve exeception handling around bcreader invocations.
llvm-svn: 14674
2004-07-07 21:01:38 +00:00
Chris Lattner
6c5e26142c
Fix regressions in these testcases:
...
Regression.Assembler.2002-01-24-BadSymbolTableAssert
Regression.Assembler.2002-01-24-ValueRefineAbsType
Found through the nightly tester :)
llvm-svn: 14671
2004-07-07 18:07:46 +00:00
Chris Lattner
ab994ac49a
The bytecode reader wants to be able to read types that are not quite resolved
...
yet, then resolve them in it's own sweet time. We must support this.
llvm-svn: 14666
2004-07-07 06:48:27 +00:00
Chris Lattner
006aea24ff
When folding constant expr gep's, don't force the use of long indices.
...
llvm-svn: 14658
2004-07-07 04:45:13 +00:00
Chris Lattner
b9f3b677ae
Make sure people don't make functiontypes with an invalid return type
...
llvm-svn: 14654
2004-07-06 23:25:19 +00:00
Chris Lattner
5c1abfecfe
Find bugs sooner rather than later. In this case, don't allow the creation
...
of instructions that don't have a first-class or void type.
llvm-svn: 14646
2004-07-06 17:44:17 +00:00
Reid Spencer
bfacdee814
Correct syntax typo .. ; -> :
...
llvm-svn: 14619
2004-07-04 12:15:11 +00:00
Reid Spencer
8a9a34f7ff
- Changes for bug 122
...
- Remove Tabs
- Add inserters needed since Value doesn't implement them any more
- Move some functions here to avoid cyclic header file dependencies.
llvm-svn: 14618
2004-07-04 12:14:17 +00:00
Reid Spencer
d02e1dc90d
- #include <iostream> since its not in Value.h any more.
...
llvm-svn: 14617
2004-07-04 11:55:37 +00:00
Reid Spencer
d242724126
Constify SymbolTable's use of Type* so that it never modifies them.
...
llvm-svn: 14616
2004-07-04 11:55:08 +00:00
Reid Spencer
64a2a1c92b
- #include <iostream> since its not in Value.h any more.
...
- constify use of Type* returned from symbol table.
llvm-svn: 14615
2004-07-04 11:52:49 +00:00
Reid Spencer
abf33934d2
#include <iostream> since its not in Value.h any more.
...
llvm-svn: 14614
2004-07-04 11:51:24 +00:00
Reid Spencer
93c3d80eb4
Adjust the slot machine to handle Types separately from Values. This was
...
done by doubling up the data structures so that Type based equivalents are
used. A consequence of this is overloading of function members that take a
Type* instead of a Value*. Various other cleanups related to Type != Value
(bug 122) were also implemented.
llvm-svn: 14613
2004-07-04 11:50:43 +00:00
Chris Lattner
f0af72ac49
Fix Type::isSized() to realize that "{ opaque }" is not sized
...
llvm-svn: 14585
2004-07-02 23:20:17 +00:00
Chris Lattner
f3e46315fb
Add much better assertion checking for load and store insts.
...
Contributed by Vladimir Merzliakov!
llvm-svn: 14546
2004-07-01 20:23:52 +00:00
Chris Lattner
3d1c32ce27
Fold iType into Value::VTy
...
llvm-svn: 14435
2004-06-27 18:38:48 +00:00
Chris Lattner
56d4c0c8b2
User ctor is now inline
...
llvm-svn: 14431
2004-06-27 18:01:38 +00:00
Chris Lattner
476eace8f4
Instancevar was renamed
...
llvm-svn: 14428
2004-06-26 20:33:39 +00:00
Chris Lattner
ed76ea9025
Don't call getValueType directly. the LLVM optimizer will turn it into the same code anyway :)
...
llvm-svn: 14426
2004-06-26 19:40:40 +00:00
Misha Brukman
da2521c04f
* Capitalize `Java'
...
* Sprinkle hypens liberally
* Fix some grammar in comments
llvm-svn: 14374
2004-06-24 21:47:35 +00:00
Misha Brukman
8a1352d1b3
Linker.h moved to include/llvm/Support
...
llvm-svn: 14349
2004-06-23 17:24:31 +00:00
Misha Brukman
cf1f753730
Moved to lib/VMCore
...
llvm-svn: 14348
2004-06-23 17:21:17 +00:00
Misha Brukman
f12181a902
Use a reference instead of a pointer for the ostream. The pointer was only
...
there to assist in the development of llvm-tv, and it no longer has a need to
modify the AsmWriter output stream.
llvm-svn: 14304
2004-06-21 21:53:56 +00:00
Chris Lattner
3a8e3bce6c
Make ConstantBool act like a 1 bit ConstantInt, in order to simplify client
...
code. Patch contributed by Vladimir Prus.
llvm-svn: 14280
2004-06-21 12:12:12 +00:00
Chris Lattner
fb800c656c
IntrinsicLowering.cpp now lives in lib/CodeGen/
...
llvm-svn: 14269
2004-06-20 07:59:27 +00:00
Chris Lattner
cc465361d9
Move the IntrinsicLowering header into the CodeGen directory, as per PR346
...
llvm-svn: 14266
2004-06-20 07:49:54 +00:00
Chris Lattner
a1d29e1b15
compute dominator tree children in a deterministic order that does not depend
...
on the address of BasicBlock objects in memory. This eliminates stuff like this:
Inorder Dominator Tree:
[1] %entry
[2] %loopentry
- [3] %loopexit
[3] %no_exit
- [4] %endif
[4] %then
+ [4] %endif
+ [3] %loopexit
[3] %return
llvm-svn: 14253
2004-06-19 20:13:48 +00:00
Chris Lattner
ba131c993e
Print out immediate dominators in program order, not in random order based on the address
...
of BasicBlock objects
llvm-svn: 14252
2004-06-19 20:04:47 +00:00
Chris Lattner
3c61b2dd70
Fix printing of Argument objects, problem found by Patrick Meredith
...
llvm-svn: 14215
2004-06-18 04:07:20 +00:00
Chris Lattner
0cd29ae2cd
Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()
...
llvm-svn: 14201
2004-06-17 18:19:28 +00:00
Chris Lattner
18f8ae4e3e
Minor cleanup
...
llvm-svn: 14199
2004-06-17 17:56:54 +00:00
Chris Lattner
7c3600a50e
isnan is dead
...
llvm-svn: 14191
2004-06-15 21:52:58 +00:00
Chris Lattner
c9a6116586
Remove isnan support, correct isunordered support
...
llvm-svn: 14187
2004-06-15 21:42:23 +00:00
Chris Lattner
8ca8002f88
Do not dereference end iterators. It's really bad for the asmwriter's health.
...
This possibly fixes PR370
llvm-svn: 14181
2004-06-15 21:07:32 +00:00
Alkis Evlogimenos
173e9e832c
Make assertions more consistent with the rest of the intrinsic
...
function verification and make it a requirement that both arguments to
llvm.isunordered are of the same type.
llvm-svn: 14165
2004-06-13 00:55:26 +00:00
Alkis Evlogimenos
9b28aef6cb
Add the isunordered intrinsic.
...
llvm-svn: 14159
2004-06-12 19:19:14 +00:00
Chris Lattner
94a66c3038
Fix lowering to work correctly
...
llvm-svn: 14134
2004-06-11 02:54:02 +00:00
Chris Lattner
b07bf147cd
I misled Alkis: LLVM should have isnan, not isunordered.
...
isunordered(X, Y) === isnan(X) | isnan(Y)
Remove isunordered, add isnan.
llvm-svn: 14132
2004-06-11 02:29:43 +00:00
Alkis Evlogimenos
1ae8b4e7c4
Add the isunordered intrinsic.
...
llvm-svn: 14127
2004-06-11 01:08:18 +00:00
Chris Lattner
2c6bea32de
Share some code
...
llvm-svn: 14106
2004-06-10 01:57:38 +00:00
Chris Lattner
75e5aa4d22
Tolerate more errors
...
llvm-svn: 14104
2004-06-09 22:22:10 +00:00
Chris Lattner
3aa77d0e5e
Make the asmwriter much more tolerant of errors (which are common when working
...
on new front-ends and stuff). Also get rid of some tabs that snuck in.
llvm-svn: 14100
2004-06-09 19:41:19 +00:00
Reid Spencer
a07033fecd
Made it possible for the printInfoComment method to invoke getSlot in
...
such a way that if the Value being printed is standalone that we don't
assert and abort but just print ":??" for the slot number instead.
llvm-svn: 14097
2004-06-09 15:26:53 +00:00
Chris Lattner
6a6148fda0
Workaround or a VS miscompilation bug
...
llvm-svn: 14078
2004-06-08 23:21:39 +00:00
Chris Lattner
4996a6e7cb
Fix a link error using VS8.0
...
llvm-svn: 14071
2004-06-08 17:53:24 +00:00
Chris Lattner
a1c9755c7c
Fix PR361.
...
Dominance properties don't hold in unreachable code
llvm-svn: 14053
2004-06-07 23:07:33 +00:00
Chris Lattner
6e63236846
Fix GCC warning
...
llvm-svn: 14045
2004-06-05 17:44:48 +00:00
Chris Lattner
dfca9d7f7b
Fix GCC warnings
...
llvm-svn: 14044
2004-06-05 17:43:52 +00:00
Chris Lattner
c0f5e68d4d
Remove an unused variable.
...
Work around for bogus errors: no those static functions don't need to
be executed to be initialized!
llvm-svn: 14040
2004-06-05 01:05:19 +00:00
Chris Lattner
c107a4d1c5
Add missing #include
...
llvm-svn: 14037
2004-06-05 00:24:59 +00:00
Chris Lattner
678cafb8a9
Work around VS bug
...
llvm-svn: 14036
2004-06-05 00:22:04 +00:00
Chris Lattner
6e6ab3888b
As much as I dislike doing this, it's the only fix for VC8.0 that I can come
...
up with, even though it's perfectly conformant code. :(
llvm-svn: 14034
2004-06-05 00:11:27 +00:00
Chris Lattner
cf111f5951
Remove unused var
...
llvm-svn: 14033
2004-06-05 00:03:27 +00:00
Chris Lattner
f609ec6329
Squelch a warning
...
llvm-svn: 14032
2004-06-04 23:53:20 +00:00
Chris Lattner
f6950439d6
Delete some unreachable code
...
llvm-svn: 14031
2004-06-04 23:52:36 +00:00
Misha Brukman
99137fd27a
* No more CachedWriter::setStream()
...
* ostream is back to being a reference instead of a pointer
* Output single characters as chars, not as length-1 strings
llvm-svn: 14030
2004-06-04 21:11:51 +00:00
Chris Lattner
871a5eb37c
Ugh, apparently there is no common ground here.
...
llvm-svn: 14026
2004-06-04 20:48:51 +00:00
Chris Lattner
4bd463c15e
Squish a warning
...
llvm-svn: 14020
2004-06-04 20:14:29 +00:00
Chris Lattner
e78fedecf2
* Verify function prototypes, not just functions with bodies.
...
* Verify that functions do not take aggregates as arguments.
llvm-svn: 13984
2004-06-03 06:38:43 +00:00
John Criswell
1a6863e08b
Modified calcTypeName() so that it does not allocate a std::string for
...
every recursive call.
This makes it more robust for deeply nested, unnamed types.
llvm-svn: 13915
2004-06-01 14:54:08 +00:00
Reid Spencer
d98738fe4d
Fix a bug that Chris asserts emphatically is a bug. The changed clause
...
would always return false because the Type of a type value is always
Type::TypeTY and can never be a floating point type.
llvm-svn: 13902
2004-05-30 01:19:48 +00:00
Reid Spencer
00aca582a2
Moved this file to lib/Bytecode/Writer because its used there only.
...
llvm-svn: 13900
2004-05-30 00:09:32 +00:00
Chris Lattner
9bf4cbeb4b
Don't use size() when you mean empty()
...
llvm-svn: 13876
2004-05-28 05:40:19 +00:00
Reid Spencer
0030dfe486
Clean up a comment.
...
llvm-svn: 13860
2004-05-27 22:04:46 +00:00
Reid Spencer
693dcc2f89
Fix for bug 348.
...
The SymbolTable changes caused this one too.
llvm-svn: 13859
2004-05-27 21:58:13 +00:00
Alkis Evlogimenos
2c463a8a99
Add constructors that take a BasicBlock to append to, to the rest of
...
the llvm::Instruction hierarchy.
llvm-svn: 13800
2004-05-27 00:15:23 +00:00
Alkis Evlogimenos
bf27c54995
Inline trivial constructors.
...
llvm-svn: 13797
2004-05-26 22:07:18 +00:00
Reid Spencer
b7b1b9d4b2
Several clean ups suggested by Chris: remove tabs, make SlotMachine do lazy
...
initialization so we don't scan large Modules/Functions needlessly, tighten
up restrictions on what can be put in SlotMachine (no Constants that aren't
GlobalValues).
llvm-svn: 13796
2004-05-26 21:56:09 +00:00
Alkis Evlogimenos
edff018f18
Refactor common initialization code in private init() functions.
...
This is a first step in supplying append to basic block constructors
for all instruction types.
llvm-svn: 13793
2004-05-26 21:41:09 +00:00
Reid Spencer
dccf1747a1
Part of bug 122:
...
This change removes the BuildBytecodeInfo flag from the SlotCalculator
class. This flag was needed to distinguish between the Bytecode/Writer
and the AsmWriter. Now that AsmWriter doesn't use SlotCalculator, we can
remove this flag and simplify some code. Also, some minor name changes
to CachedWriter.h needed to be committed (missed in previous commit).
llvm-svn: 13785
2004-05-26 07:37:11 +00:00
Reid Spencer
58bad426cc
Part of bug 122. Removed dependency of AsmWriter on SlotCalculator by
...
incorporating a significantly simpler "SlotMachine" into this file. The
SlotMachine is tailored for use by only the AsmWriter whose requirements
for slot numbers are vastly different than from the Bytecode/Writer. Code
change passes all Feature and Regression tests.
llvm-svn: 13784
2004-05-26 07:18:52 +00:00
Reid Spencer
756f392365
Document a couple functions.
...
llvm-svn: 13761
2004-05-25 18:14:38 +00:00
Reid Spencer
2791d48685
Made it illegal to pass a Type* through one of the Value* interfaces. The
...
SymbolTable will now assert if this is done. This didn't find any incorrect
usage of SymbolTable but will prevent future mistakes until Type != Value.
llvm-svn: 13755
2004-05-25 15:20:47 +00:00
Reid Spencer
fec48b0d9d
Convert to SymbolTable's new iteration interface.
...
llvm-svn: 13754
2004-05-25 08:53:40 +00:00
Reid Spencer
e6cf613d2a
Convert to SymbolTable's new iteration interface. Remove tabs.
...
llvm-svn: 13753
2004-05-25 08:53:29 +00:00
Reid Spencer
e6e0da0b9f
Completely rewrote the class. SymbolTable now separates Type* from Value* in preparation\
...
for making Type not derive from Value. There are now separate interfaces \
for looking up, finding, and inserting Types and Values. There are also \
three separate iterator interfaces, one for type planes, one for the types \
(type type plane), and one for values within a type plane. See the \
documentation in the Header file.
llvm-svn: 13752
2004-05-25 08:52:42 +00:00
Reid Spencer
08e75b22a5
Convert to SymbolTable's new lookup and iteration interfaces.
...
llvm-svn: 13751
2004-05-25 08:52:20 +00:00
Chris Lattner
84431acbf1
Implement some helpers
...
llvm-svn: 13738
2004-05-25 05:32:43 +00:00
Chris Lattner
5f65590915
Recognize and verify the new GC intrinsics.
...
llvm-svn: 13687
2004-05-23 21:16:51 +00:00
Chris Lattner
30cc4edfc3
Fix for PR340: Verifier misses malformed switch instruction
...
llvm-svn: 13618
2004-05-21 16:47:21 +00:00
Brian Gaeke
5d639ac9f3
Fold two assertions with backwards error messages into one with a
...
correct error message.
llvm-svn: 13590
2004-05-17 21:15:18 +00:00
Chris Lattner
da4ac5d876
Implement the AddPrototypes method
...
llvm-svn: 13432
2004-05-09 04:29:57 +00:00
John Criswell
ec6d378d21
Don't call getForwardedType() twice, as recommended by Chris.
...
llvm-svn: 13391
2004-05-06 22:15:47 +00:00
John Criswell
2d7c5ae892
Fix for PR#330.
...
When looking at getelementptr instructions, make sure to use a forwarded
type. We want to do this because a DerivedType may drop its uses and then
refine its users, who may then use another user who hasn't been refined yet.
By getting the forwarded type, we always ensure that we're looking at a
Type that isn't in a halfway refined state.
Now, I should be able to put this stuff in PATypeHandle, but it doesn't work
for some reason. This should do for now.
llvm-svn: 13386
2004-05-06 21:18:08 +00:00
John Criswell
b51e979c2c
Fixed inconsistent indentation.
...
llvm-svn: 13363
2004-05-04 21:46:05 +00:00
Misha Brukman
5f5f6ca775
class AssemblyWriter:
...
* Make contained ostream pointer, not reference
* Allow setting of that ostream via setStream()
class CachedWriter:
* setStream() in turn calls setStream() on the AssemblyWriter
llvm-svn: 13247
2004-04-28 19:24:28 +00:00
Misha Brukman
d408a510b8
* Add ability to print out type as symbolic
...
* Add Module accessor to AssemblyWriter
llvm-svn: 13227
2004-04-28 15:31:21 +00:00
Chris Lattner
02c65b5395
Changes to fix up the inst_iterator to pass to boost iterator checks. This
...
patch was graciously contributed by Vladimir Prus.
llvm-svn: 13185
2004-04-27 15:13:33 +00:00
Misha Brukman
7d2413f9ec
I'm allergic to the word `stuff'.
...
llvm-svn: 13096
2004-04-21 18:27:56 +00:00
Misha Brukman
cb5de6bca6
Fix retriving parent Function.
...
llvm-svn: 13001
2004-04-16 17:37:12 +00:00
Misha Brukman
aadcd46d25
Assert if deleting BasicBlock before removing it from Function.
...
llvm-svn: 12983
2004-04-16 15:47:21 +00:00
Chris Lattner
644ad23b21
Make sure to check for a very bad class of errors: an instruction
...
that does not dominate all of its users, but is in the same basic block as
its users. This class of error is what caused the mysterious CBE only
failures last night.
llvm-svn: 12979
2004-04-16 05:51:47 +00:00
John Criswell
bed6463449
Remove the return type check for llvm.readio. This check is done for all
...
functions and is not needed here.
Simplify the pointer type check per Chris's suggestions.
llvm-svn: 12945
2004-04-14 15:06:48 +00:00
John Criswell
e00ecd7e84
Added code to verify that llvm.readio's pointer argument returns something
...
that matches its return type.
llvm-svn: 12944
2004-04-14 14:49:36 +00:00
John Criswell
11f7f60028
Finish adding the llvm.readio and llvm.writeio intrinsics.
...
Sorry these didn't get in yesterday.
llvm-svn: 12942
2004-04-14 13:46:52 +00:00
Chris Lattner
226ea8166e
Add a missing break, which caused a crash in an obscure situation
...
llvm-svn: 12825
2004-04-11 01:29:30 +00:00
John Criswell
c9c191c41b
Reversed the order of the llvm.writeport() operands so that the value
...
is listed first and the address is listed second.
llvm-svn: 12795
2004-04-09 19:09:14 +00:00
John Criswell
07c581695d
Added the llvm.readport and llvm.writeport intrinsics.
...
The Verifier ensures that their parameters are of integral types and have
the correct sign, but it does not enforce any size restrictions because
such restrictions are platform dependent.
llvm-svn: 12781
2004-04-08 20:27:38 +00:00
Chris Lattner
9236135e8f
Support getelementptr instructions which use uint's to index into structure
...
types and can have arbitrary 32- and 64-bit integer types indexing into
sequential types.
llvm-svn: 12653
2004-04-05 01:30:19 +00:00
Chris Lattner
eb1caeca2a
Add ConstantExpr::get(Sign|Zero)Extend methods
...
llvm-svn: 12648
2004-04-04 23:20:30 +00:00
Chris Lattner
0d20ff2e86
Make the verifier API more complete and useful.
...
Patch contributed by Reid Spencer
llvm-svn: 12609
2004-04-02 15:45:08 +00:00
Chris Lattner
5a789b5e06
Add support for constant expr casts
...
llvm-svn: 12564
2004-03-31 02:56:11 +00:00
Chris Lattner
1d78eb6094
Fix a latent bug in select constantexpr handling that was broke 253.perlbmk
...
llvm-svn: 12562
2004-03-30 22:51:03 +00:00
Chris Lattner
50dc89f874
Handle -0.0 correctly
...
llvm-svn: 12530
2004-03-29 19:51:24 +00:00
Chris Lattner
7f5d56b43a
Add a bunch of methods that should have been added a long time ago.
...
llvm-svn: 12526
2004-03-29 02:37:53 +00:00
Chris Lattner
27cbe8d690
Add another check
...
llvm-svn: 12525
2004-03-29 00:29:36 +00:00
Chris Lattner
44acd09520
Fix an assertion
...
Contributed by Reid Spencer
llvm-svn: 12524
2004-03-29 00:17:20 +00:00
Chris Lattner
b34cfff038
Add two methods which have been needed for a long time: Type::get(Un)signedVersion
...
llvm-svn: 12522
2004-03-26 21:43:22 +00:00
Chris Lattner
f943b487c5
Catch some more cases of broken code. The loop extractor seems to be creating
...
situations where there is a branch that goes to a block in another function.
llvm-svn: 12379
2004-03-14 03:23:54 +00:00
Chris Lattner
17042ee9ad
verifyFunction has been broken for a long time now. Fix it.
...
llvm-svn: 12377
2004-03-14 03:16:15 +00:00
Chris Lattner
f7bc6fd913
Rename the intrinsic enum values for llvm.va_* from Intrinsic::va_* to
...
Intrinsic::va*. This avoid conflicting with macros in the stdlib.h file.
llvm-svn: 12356
2004-03-13 00:24:00 +00:00
Misha Brukman
6eb48bab7b
Keep transitively-required passes alive for queries to work after the initial
...
user pass is destroyed.
llvm-svn: 12332
2004-03-12 06:16:28 +00:00
Chris Lattner
b53ea9f895
Add support for checking the select instruction
...
llvm-svn: 12325
2004-03-12 05:54:31 +00:00
Chris Lattner
a5cc2410f3
Know the opcode name of the select instruction
...
llvm-svn: 12324
2004-03-12 05:54:20 +00:00
Chris Lattner
c84ec93d3e
Add support for select constant expressions. Use reserve a bit more to avoid
...
memory wasteage.
llvm-svn: 12323
2004-03-12 05:54:04 +00:00
Chris Lattner
9ca4f0776f
Add new function
...
llvm-svn: 12322
2004-03-12 05:53:41 +00:00
Chris Lattner
f0a39f27e0
Teach the constant folder how to do select instructions
...
llvm-svn: 12321
2004-03-12 05:53:32 +00:00
Chris Lattner
aa815619b4
Print select instructions correctly
...
llvm-svn: 12320
2004-03-12 05:53:14 +00:00