Chris Lattner
633e78c5c6
Finegrainify namespacification
...
llvm-svn: 14808
2004-07-14 06:39:48 +00:00
Chris Lattner
a262a55378
Revamp handling of labels. In particular, if we create a forward reference
...
for a basic block, use it when the block is defined instead of deleting it
and creating a new one. Also, only create at most ONE forward reference
for any block, instead of one for each forward reference.
llvm-svn: 14807
2004-07-14 06:28:35 +00:00
Chris Lattner
483a35c547
Split the basic block handling case out of getVal into getBBVal.
...
llvm-svn: 14805
2004-07-14 01:33:11 +00:00
Chris Lattner
ed8ebfdac9
Fix typeo and refactor bb productions to make it possible for us to reuse any
...
forward reference blocks if they have been created (instead of creating a new
block, replaceAllUsesOfWith, then nuking the placeholder). This is not yet
implemented.
llvm-svn: 14791
2004-07-13 08:39:15 +00:00
Chris Lattner
3ab20a8c6a
Eliminate some mega-cruft here. There is no reason to DERIVE FROM IR CLASSES
...
just to keep track of some per-object state! Gaah! Whoever wrote this stuff...
oh wait, that would be me. Never mind.
llvm-svn: 14790
2004-07-13 08:28:21 +00:00
Chris Lattner
2314ffe629
Inline the now trivial setValueNameInternal function into both callers
...
llvm-svn: 14789
2004-07-13 08:12:39 +00:00
Chris Lattner
34682ff049
Now that basic blocks are eagerly inserted into the Function, we can use
...
the funciton symbol table to check for conflicts instead of having to
keep a shadow named LocalSymtab. Totally eliminate LocalSymtab. Verified
that this did not cause a regression on the testcase for PR107.
llvm-svn: 14788
2004-07-13 08:10:10 +00:00
Chris Lattner
83973de5a7
A couple of substantial cleanup fixes:
...
1. Split setValueName into two separate functions, one that is only used
at function scope and doesn't have to deal with duplicates, and one
that can be used either at global or function scope but that does deal
with conflicts. Conflicts were only in there because of the crappy old
CFE and probably should be entirely eliminated.
2. Insert BasicBlock's into the parent functions when they are created
instead of when they are complete. This effects name lookup (for the
better), which will be exploited in the next patch.
llvm-svn: 14787
2004-07-13 07:59:27 +00:00
Chris Lattner
7aa45e259a
Replace a bunch of complex ConstantPointerRef referring code with simple
...
code.
llvm-svn: 14785
2004-07-13 06:58:07 +00:00
Chris Lattner
75bbce2fdb
Don't call Type::setName()
...
llvm-svn: 14724
2004-07-09 16:43:55 +00:00
Chris Lattner
2d48ef104b
Eliminate uses of the UniqueID field on Type objects
...
llvm-svn: 14707
2004-07-08 22:30:50 +00:00
Reid Spencer
d5ed7fb8fb
- remove use of isa<Type>(Val) since there's no inheritance relationship
...
any more. Needed for bug 122
- #include <iostream> since Value.h doesn't include it any more.
llvm-svn: 14621
2004-07-04 12:19:05 +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
Reid Spencer
686af1f8bc
Remove some more dead code resulting from adding setTypeName().
...
llvm-svn: 13862
2004-05-28 00:21:06 +00:00
Reid Spencer
3077b8e168
Remove an assertion that uses Type::TypeTy that is never hit and will
...
break when Type::TypeTy goes away. Also remove a dead block of code and
dead comments.
llvm-svn: 13861
2004-05-27 22:05:50 +00:00
Reid Spencer
9a0451787d
Provide the correct patch for bug 345. The solution is to add a setTypeName
...
function to llvmAsmParser.y and then use it in the one place in the grammar
that needs it. Also had to make Type::setName public because setTypeName
needs it in order to retain compatibility with setValueName.
llvm-svn: 13795
2004-05-26 21:48:31 +00:00
Chris Lattner
70d84370e1
A quick and ugly hack to fix PR345. I used TypeTy specifically to make
...
Reid cringe :)
llvm-svn: 13788
2004-05-26 17:08:25 +00:00
Reid Spencer
1190d6061c
Changed to use SymbolTable's new lookup interface.
...
llvm-svn: 13758
2004-05-25 17:29:21 +00:00
Chris Lattner
22ca3df5b1
Fix a memory leak. We leaked the vector holding the entries in switch tables.
...
llvm-svn: 13023
2004-04-17 23:49:15 +00:00
Chris Lattner
f78d930837
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.
Auto-upgrade .ll files that use ubytes to index into structures to use uint's.
llvm-svn: 12652
2004-04-05 01:30:04 +00:00
Chris Lattner
6ea8b0176c
Avoid TRUE and FALSE which apparently conflict with some macros on OSX
...
llvm-svn: 12566
2004-03-31 03:49:47 +00:00
Chris Lattner
d265077f6d
Fix bug: Assembler/2004-03-30-UnclosedFunctionCrash.llx
...
llvm-svn: 12551
2004-03-30 20:58:25 +00:00
Chris Lattner
81df059f63
Allow parsing select instruction and constant expr
...
llvm-svn: 12313
2004-03-12 05:51:36 +00:00
Chris Lattner
e44cc1372e
Insert functions into the module promptly, not lazily. This fixes a bug
...
I introduced last night. Note to self: test the *correct* tree...
llvm-svn: 12220
2004-03-08 16:14:19 +00:00
Chris Lattner
df5ebdc8b1
Eliminate a REALLY HORRIBLE API: mutateReferences, which is gross gross gross.
...
llvm-svn: 12212
2004-03-08 06:09:57 +00:00
Chris Lattner
034a264a99
It turns out that the two dimensional vectors were causing big slowdowns
...
in this for programs with lots of types (like the testcase in PR224).
The problem was that the type ID that the outer vector was using was not
very dense (as many types are getting resolved), so the vector is large
and gets reallocated a lot.
Since there are a lot of values in the program (the .ll file is 10M),
each reallocation has to copy the subvectors, which is also quite slow
(this wouldn't be a problem if C++ supported move semantics, but it
doesn't, at least not yet :(
Changing the outer data structure to a map speeds a release build of
llvm-as up from 11.21s to 5.13s on the testcase in PR224.
llvm-svn: 11244
2004-02-09 21:03:38 +00:00
Chris Lattner
7eb118e4f7
When resolving upreferences, if multiple uprefs will be resolved to the same
...
type at the same time, resolve the upreferences to each other before resolving
it to the outer type. This shaves off some time from the testcase in PR224, from
25.41s -> 21.72s.
llvm-svn: 11241
2004-02-09 18:53:54 +00:00
Chris Lattner
16690fad3d
Adjust to the changed StructType interface. In particular, getElementTypes() is gone.
...
llvm-svn: 11228
2004-02-09 04:37:31 +00:00
Chris Lattner
a1757d1d91
Start using the new and improve interface to FunctionType arguments
...
llvm-svn: 11224
2004-02-09 04:14:01 +00:00
Chris Lattner
2b3eaf045b
This #include is not needed, it should have been removed with the last patch
...
llvm-svn: 11222
2004-02-09 03:22:32 +00:00
Chris Lattner
76292e7fcc
Instead of searching the entire type graph for a type to determine if it
...
contains the type we are looking for, just search the immediately used types.
We can only do this because we keep the "current" type in the nesting level
as we decrement upreferences.
This change speeds up the testcase in PR224 from 50.4s to 22.08s, not
too shabby.
llvm-svn: 11221
2004-02-09 03:19:29 +00:00
Chris Lattner
645f8fb4e5
Upreferences are always OpaqueTypes, meaning that it is impossible for a non-abstract
...
type from containing one. This speeds up the asmparser on the testcase in PR224 from
61->50s.
llvm-svn: 11220
2004-02-09 03:03:10 +00:00
Chris Lattner
2e51b50de1
Change the 'exception' destination to the 'unwind' destination. We will always
...
allow 'except' instead of 'unwind' here though.
llvm-svn: 11203
2004-02-08 21:48:25 +00:00
Chris Lattner
758109ce2e
Don't use ConstantExpr::getShift anymore
...
llvm-svn: 10791
2004-01-12 19:08:43 +00:00
Chris Lattner
fe95ceadaf
Minor code cleanups. The only bugfix is to the UR_DEBUG stuff which didn't
...
compile when enabled.
llvm-svn: 10657
2003-12-31 02:18:11 +00:00
Chris Lattner
c09a6f0621
Right, fix the problem with invoke instructions, not just call instructions
...
llvm-svn: 10599
2003-12-23 22:18:36 +00:00
Chris Lattner
c1dd02538a
Do not delete the type holder until after the call instruction has been
...
constructed!
llvm-svn: 10598
2003-12-23 20:39:17 +00:00
Chris Lattner
defd9ccd73
Minor cleanups, plug a minor memory leak
...
llvm-svn: 10596
2003-12-23 20:05:15 +00:00
Chris Lattner
fe5dac5c16
To not barf when an error occurs.
...
llvm-svn: 10236
2003-11-26 07:24:58 +00:00
Chris Lattner
59f92a51f1
Fix PR147
...
llvm-svn: 10204
2003-11-25 03:54:16 +00:00
Chris Lattner
f987c67a53
Check return types of functions
...
llvm-svn: 10146
2003-11-21 22:32:23 +00:00
Chris Lattner
70c6fff394
Don't crash on bogus source value
...
llvm-svn: 10132
2003-11-21 20:27:35 +00:00
Chris Lattner
be56c11ccc
Fix bug PR107, patch contributed by Reid Spencer!
...
llvm-svn: 9911
2003-11-12 04:40:30 +00:00
Brian Gaeke
d25f86d683
Put all LLVM code into the llvm namespace, as per bug 109.
...
llvm-svn: 9903
2003-11-11 22:41:34 +00:00
Chris Lattner
034bfaddf0
Make sure that PHI node operands are first class types
...
llvm-svn: 9607
2003-10-30 01:38:18 +00:00
John Criswell
de34542f41
Added LLVM copyright header.
...
llvm-svn: 9321
2003-10-21 15:17:13 +00:00
Chris Lattner
87843f87b8
Change the Opcode enum for PHI nodes from "Instruction::PHINode" to "Instruction::PHI" to be more consistent with the other instructions.
...
llvm-svn: 9269
2003-10-19 21:34:28 +00:00
Chris Lattner
d0e3a15a9e
New revised variable argument handling support
...
llvm-svn: 9219
2003-10-18 05:53:13 +00:00
Chris Lattner
17f8f2e317
Tighten up handling of checks for shift instructions
...
llvm-svn: 9191
2003-10-17 05:11:44 +00:00
Chris Lattner
39b976aed8
Minor cleanups
...
llvm-svn: 9177
2003-10-16 20:12:13 +00:00
Chris Lattner
f46c45682a
Add support for 'weak' linkage.
...
llvm-svn: 9171
2003-10-16 18:29:00 +00:00
Chris Lattner
f2ed60c0b7
Decrease usage of use_size()
...
llvm-svn: 9135
2003-10-15 16:48:29 +00:00
Chris Lattner
b6c8569f05
Regularize header file comments
...
llvm-svn: 9071
2003-10-13 03:32:08 +00:00
Chris Lattner
1d18ef00c3
Reserve space for PHI operands
...
llvm-svn: 9007
2003-10-10 16:34:58 +00:00
Chris Lattner
269b0c1d79
Accept 'weak' as a linkage type. For now, just turn it into linkonce linkage
...
llvm-svn: 8998
2003-10-10 04:54:02 +00:00
Chris Lattner
e4012123b6
Add better checking
...
llvm-svn: 8996
2003-10-10 03:56:01 +00:00
Chris Lattner
9f5802fac5
The objects mapped are really PATypeHolders, not PATypeHandles
...
llvm-svn: 8822
2003-10-02 19:00:34 +00:00
Chris Lattner
d44cb48b44
Oops, look at the VOLATILE marker, not the opcode
...
llvm-svn: 8413
2003-09-08 20:29:46 +00:00
Chris Lattner
4ad8720f91
Add support for the unwind instruction
...
llvm-svn: 8408
2003-09-08 18:54:55 +00:00
Chris Lattner
56bbe63aa3
Parse volatile loads/stores
...
llvm-svn: 8402
2003-09-08 18:20:29 +00:00
Chris Lattner
4252e57c90
Remove gross old hacky code that was in there for backwards compatibility
...
1 year is plenty of migration time!
llvm-svn: 8282
2003-09-01 16:31:28 +00:00
Chris Lattner
f35db86ae4
Rename SwitchInst::dest_push_back -> addCase
...
llvm-svn: 8089
2003-08-23 23:14:52 +00:00
Chris Lattner
9a709fd181
Accept double quoted strings everwhere we accept a %ABC variable name.
...
This introduces one more innoculous shift-reduce conflict, but will REALLY
help the type names generated by the C++ frontend, which wants to use all
kinds of crazy stuff.
llvm-svn: 8050
2003-08-22 05:42:10 +00:00
Misha Brukman
56f7db4178
Spell `necessary' correctly.
...
llvm-svn: 7944
2003-08-18 14:43:39 +00:00
Chris Lattner
1351c304dc
Remove redundant const qualifiers from cast<> expressions
...
llvm-svn: 7253
2003-07-23 15:30:06 +00:00
Misha Brukman
5de3e14206
The word separate' only has one
e'.
...
llvm-svn: 7173
2003-07-14 17:20:40 +00:00
Chris Lattner
1b9f2fdb0b
Add support for a new zeroinitializer token which can be used to get rid of
...
huge arrays of zero initialized values
llvm-svn: 6937
2003-06-28 20:01:34 +00:00
Chris Lattner
75e1e892a6
Detemplatize the PATypeHandle class, which was only really instantiated on 'Type'.
...
llvm-svn: 6774
2003-06-18 19:22:36 +00:00
Chris Lattner
0a678611b8
Fix bugs:
...
Assembler/2003-05-21-MalformedShiftCrash.llx
Assembler/2003-05-21-ConstantShiftExpr.ll
llvm-svn: 6258
2003-05-21 17:48:56 +00:00
Chris Lattner
676a07589b
Fix bugs:
...
Assembler/2003-05-21-EmptyStructTest.ll
Assembler/2003-05-21-MalformedStructCrash.llx
llvm-svn: 6255
2003-05-21 16:06:56 +00:00
Chris Lattner
fc6cdc252d
Fix bug: Assembler/2003-05-15-SwitchBug.ll
...
llvm-svn: 6239
2003-05-15 21:30:00 +00:00
Chris Lattner
e1faff42f4
Add support for the new va_arg instruction
...
llvm-svn: 6029
2003-05-08 02:44:12 +00:00
Chris Lattner
c5d76a4e74
Fix bug: Assembler/2003-04-25-UnresolvedGlobalReference.ll
...
llvm-svn: 5948
2003-04-25 21:47:33 +00:00
Chris Lattner
b70bd26701
Allow information about the target to be specified in the .ll file
...
llvm-svn: 5843
2003-04-22 19:07:06 +00:00
Chris Lattner
a39c962c1d
Namespacify
...
llvm-svn: 5840
2003-04-22 18:42:41 +00:00
Chris Lattner
3327cb03d4
Preserve module source information in the ModuleID
...
llvm-svn: 5836
2003-04-22 18:02:52 +00:00
Chris Lattner
fa4f750f3e
Add new linkage types to support a real frontend
...
llvm-svn: 5786
2003-04-16 20:28:45 +00:00
Chris Lattner
638d4b0f28
Don't allow declaring an external internal variable
...
llvm-svn: 5781
2003-04-16 18:13:57 +00:00
Chris Lattner
f5ce9b1a74
Fix bug: Assember2003-04-15-ConstantInitAssertion.llx
...
llvm-svn: 5777
2003-04-15 16:09:31 +00:00
Chris Lattner
c8a5c7e4a7
Fix bug: Assembler/2003-03-03-DuplicateConstant.ll
...
llvm-svn: 5692
2003-03-03 23:28:55 +00:00
Chris Lattner
c68ccffee6
Fix bug: Assembler/2003-02-02-ConstGlobal.ll
...
llvm-svn: 5467
2003-02-02 16:40:20 +00:00
Chris Lattner
b9658793ee
Fix bug: Assembler/2003-01-30-UnsignedString.ll
...
llvm-svn: 5445
2003-01-30 22:24:26 +00:00
Chris Lattner
b5027095e5
- Eliminated the deferred symbol table stuff in Module & Function, it really
...
wasn't an optimization and it was causing lots of bugs.
llvm-svn: 4779
2002-11-20 18:36:02 +00:00
Chris Lattner
cb5f22396e
- Fix bug: Assembler/2002-10-15-NameClash.ll
...
- Clean up code a bit, s/Method/Function/
llvm-svn: 4188
2002-10-15 21:41:14 +00:00
Chris Lattner
b1696e6aed
This loop executed exactly one time, turn it into straightline code
...
llvm-svn: 4159
2002-10-14 03:28:42 +00:00
Chris Lattner
82f54dca49
- Change Function's so that their argument list is populated when they are
...
constructed. Before, external functions would have an empty argument list,
now a Function ALWAYS has a populated argument list.
llvm-svn: 4149
2002-10-13 20:57:00 +00:00
Chris Lattner
0e7fbf7025
Minor, non-functionality changing, formatting fix
...
llvm-svn: 4091
2002-10-09 00:25:32 +00:00
Chris Lattner
6408586b7b
The parser now accepts "external" global variables, in addition to the backwards
...
compatible "uninitialized" global variables
llvm-svn: 4050
2002-10-06 22:45:09 +00:00
Chris Lattner
f820cab2ad
Change the MallocInst & AllocaInst ctors to take the allocated type, not the
...
pointer type returned.
llvm-svn: 3710
2002-09-13 22:28:45 +00:00
Chris Lattner
a8e481b961
Recently changed getelementptr to use 'long' indexes for sequential types
...
instead of uints. This adds a translation scheme to be backwards compatible
with old .ll files.
llvm-svn: 3679
2002-09-11 01:17:27 +00:00
Chris Lattner
288bd1177d
Use explicit ctor
...
llvm-svn: 3663
2002-09-10 22:37:46 +00:00
Chris Lattner
a7e9aba28c
Tighten up error checking in parser, disallowing instructions that f.e.,
...
add pointers together.
llvm-svn: 3660
2002-09-10 19:57:26 +00:00
Chris Lattner
21c27f79be
Load & StoreInst no longer derive from MemAccessInst, so we don't have
...
to handle indexing anymore
llvm-svn: 3484
2002-08-22 22:48:55 +00:00
Chris Lattner
0b6940f8c4
- Fix asmparser and bytecode reader to not generate loads/stores with idxs
...
Now an obnoxious warning is emitted to discourage usage. Eventually
support will be removed.
llvm-svn: 3435
2002-08-21 23:51:21 +00:00
Chris Lattner
a2b28689a9
- Remove unused STRING token from lexer & parser
...
- Changed parser to always use parenthesis on ConstExprs to be consistent
- Parser now passes TRUE and FALSE tokens as a special case of the ConstExpr
machinery instead of a special case of constant int stuff
- Fix the AsmParser to use ValueRef ::= ConstExpr, and remove
ResolvedVal ::= ConstExpr this allows constexprs to be used in PHI nodes
llvm-svn: 3362
2002-08-16 21:14:40 +00:00
Chris Lattner
7cd8403f2b
Parse const expr cast instruction the same way the instruction is formed
...
llvm-svn: 3353
2002-08-15 19:37:11 +00:00
Chris Lattner
8c5c0b9560
Move ConstExpr production to unify ConstVal stuff
...
llvm-svn: 3351
2002-08-15 18:17:28 +00:00
Chris Lattner
971fa225af
Fix bug: test/Regression/Assembler/2002-08-15-UnresolvedGlobalReference.ll
...
llvm-svn: 3350
2002-08-15 17:58:33 +00:00
Chris Lattner
6a9d88347a
Remove support for Not ConstantExpr. This simplifies the unary case to only
...
have to support the cast instruction, so the function is renamed to getCast.
llvm-svn: 3328
2002-08-14 18:24:09 +00:00
Chris Lattner
ed328517aa
AsmParser turns 'not' instructions into 'xor' instructions now.
...
llvm-svn: 3309
2002-08-14 17:12:33 +00:00