summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove a gross and crufty "feature" that was never documented and doesn't work.Chris Lattner2004-07-142-7/+1
| | | | llvm-svn: 14809
* Finegrainify namespacificationChris Lattner2004-07-141-6/+4
| | | | llvm-svn: 14808
* Revamp handling of labels. In particular, if we create a forward referenceChris Lattner2004-07-141-22/+71
| | | | | | | | 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
* Add Machine-CFG edges to SparcV9 MachineBasicBlocks.Brian Gaeke2004-07-141-6/+20
| | | | llvm-svn: 14806
* Split the basic block handling case out of getVal into getBBVal.Chris Lattner2004-07-141-34/+40
| | | | llvm-svn: 14805
* Make Argument::print more resilient to non-verifiable IRChris Lattner2004-07-131-1/+2
| | | | llvm-svn: 14801
* Catch aggregates passed by value sooner rather than later.Chris Lattner2004-07-131-0/+3
| | | | llvm-svn: 14800
* * Specify that FP arith options have 3 operandsMisha Brukman2004-07-132-26/+20
| | | | | | * Correctly load FP constants from the constant pool, should be refactored llvm-svn: 14799
* Actually, use an exception to stop verification. This gives us much betterChris Lattner2004-07-131-1/+5
| | | | | | error messages because verification stops at the first error. llvm-svn: 14794
* There is no reason to abort and print a stack trace if there is a verificationChris Lattner2004-07-131-1/+1
| | | | | | error. Just print the message like a good little tool. llvm-svn: 14793
* Fine-grainify namespacification, prune #includeChris Lattner2004-07-131-6/+2
| | | | llvm-svn: 14792
* Fix typeo and refactor bb productions to make it possible for us to reuse anyChris Lattner2004-07-131-11/+12
| | | | | | | | 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
* Eliminate some mega-cruft here. There is no reason to DERIVE FROM IR CLASSESChris Lattner2004-07-132-67/+26
| | | | | | | 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
* Inline the now trivial setValueNameInternal function into both callersChris Lattner2004-07-131-13/+10
| | | | llvm-svn: 14789
* Now that basic blocks are eagerly inserted into the Function, we can useChris Lattner2004-07-131-60/+12
| | | | | | | | 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
* A couple of substantial cleanup fixes:Chris Lattner2004-07-131-47/+72
| | | | | | | | | | | | | 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
* Fix warning on SparcV9, where sizeof (int) != sizeof (void *).Brian Gaeke2004-07-131-1/+1
| | | | llvm-svn: 14786
* Replace a bunch of complex ConstantPointerRef referring code with simpleChris Lattner2004-07-131-11/+3
| | | | | | code. llvm-svn: 14785
* Make tblgen not try to be smart. This is better handled in makefiles ifChris Lattner2004-07-131-14/+3
| | | | | | at all. Patch contributed by Vladimir Prus! llvm-svn: 14784
* Factor some code to handle "load (constantexpr cast foo)" just likeChris Lattner2004-07-131-20/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "load (cast foo)". This allows us to compile C++ code like this: class Bclass { public: virtual int operator()() { return 666; } }; class Dclass: public Bclass { public: virtual int operator()() { return 667; } } ; int main(int argc, char** argv) { Dclass x; return x(); } Into this: int %main(int %argc, sbyte** %argv) { entry: call void %__main( ) ret int 667 } Instead of this: int %main(int %argc, sbyte** %argv) { entry: %x = alloca "struct.std::bad_typeid" ; <"struct.std::bad_typeid"*> [#uses=3] call void %__main( ) %tmp.1.i.i = getelementptr "struct.std::bad_typeid"* %x, uint 0, uint 0, uint 0 ; <int (...)***> [#uses=1] store int (...)** getelementptr ([3 x int (...)*]* %vtable for Bclass, int 0, long 2), int (...)*** %tmp.1.i.i %tmp.3.i = getelementptr "struct.std::bad_typeid"* %x, int 0, uint 0, uint 0 ; <int (...)***> [#uses=1] store int (...)** getelementptr ([3 x int (...)*]* %vtable for Dclass, int 0, long 2), int (...)*** %tmp.3.i %tmp.5 = load int ("struct.std::bad_typeid"*)** cast (int (...)** getelementptr ([3 x int (...)*]* %vtable for Dclass, int 0, long 2) to int ("struct.std::bad_typeid"*)**) ; <int ("struct.std::bad_typeid"*)*> [#uses=1] %tmp.6 = call int %tmp.5( "struct.std::bad_typeid"* %x ) ; <int> [#uses=1] ret int %tmp.6 ret int 0 } In order words, we now resolve the virtual function call. llvm-svn: 14783
* Correctly load FP constants out of the constant pool.Misha Brukman2004-07-122-12/+6
| | | | llvm-svn: 14782
* Apple's MacOS X is another OS which does not provide alloca() via <alloca.h>Misha Brukman2004-07-121-1/+1
| | | | llvm-svn: 14781
* Implement getModuleMatchQuality and getJITMatchQuality() for PowerPCMisha Brukman2004-07-122-0/+23
| | | | llvm-svn: 14780
* * Tabs to spacesMisha Brukman2004-07-121-7/+5
| | | | | | * Delete extra blank lines llvm-svn: 14779
* New open proj: C/C++ compiler in C++, with link to Ed Willink's C++ yacc grammarMisha Brukman2004-07-121-1/+6
| | | | llvm-svn: 14778
* Add a helper method. The StructType element is completely redundant in mostChris Lattner2004-07-121-0/+3
| | | | | | cases llvm-svn: 14777
* implement new helper methodChris Lattner2004-07-121-0/+8
| | | | llvm-svn: 14776
* Fix unused var warningChris Lattner2004-07-121-3/+2
| | | | llvm-svn: 14775
* Fix a really nasty logic error that VC noticed.Chris Lattner2004-07-121-2/+2
| | | | | | Reid, this might matter to you :) llvm-svn: 14774
* Add a missing #includeChris Lattner2004-07-121-0/+1
| | | | llvm-svn: 14773
* Fix warning compiling with VC++Chris Lattner2004-07-121-2/+2
| | | | llvm-svn: 14772
* new featureChris Lattner2004-07-121-0/+2
| | | | llvm-svn: 14770
* * Clarify Sparc as SparcV9Misha Brukman2004-07-121-4/+5
| | | | | | | * Add link to bugzilla bug with list of miscompiled SparcV9 programs * Wrap long lines llvm-svn: 14769
* Implement a new method useful for things like the inlinerChris Lattner2004-07-121-0/+10
| | | | llvm-svn: 14768
* Implement new methodChris Lattner2004-07-121-0/+36
| | | | llvm-svn: 14767
* Correct an output typo.Reid Spencer2004-07-111-1/+1
| | | | llvm-svn: 14766
* Various cleanups:Reid Spencer2004-07-111-153/+193
| | | | | | | | | | | | | | | | - Remove tabs - Standardize use of space around ( and ). - Consolidate the ConstantPlaceHolder class - Rename two methods to be more meaningful (ParseType, ParseTypes) - Correct indentation of blocks - Add documentation - Convert input dependent asserts to error(...) so it throws instead. Provide placeholder implementations of read_float and read_double that still read in platform-specific endianess. When I figure out how to do this without knowing the endianess of the platform, it will get implemented correctly. llvm-svn: 14765
* - Rename two methods to give them more meaningReid Spencer2004-07-111-2/+8
| | | | | | | - Add read_float and read_double in preparation for a correct implementation of bytecode floating point support. llvm-svn: 14764
* Remove tabs.Reid Spencer2004-07-111-2/+2
| | | | llvm-svn: 14763
* Prepare the writer for a non-broken implementation of writing floatingReid Spencer2004-07-112-2/+19
| | | | | | | point values. This will be fixed when I figure out how to do it correctly without depending on knowing the endianess of a platform. llvm-svn: 14762
* The cleanup is done. Update comment.Chris Lattner2004-07-111-5/+2
| | | | llvm-svn: 14761
* Make add constantexprs work with all types, fixing the regressions from last ↵Chris Lattner2004-07-111-4/+28
| | | | | | night llvm-svn: 14760
* Implement TargetRegistrationListenerChris Lattner2004-07-111-0/+26
| | | | llvm-svn: 14759
* Add a new listener class for things that want to be informed about newChris Lattner2004-07-111-6/+21
| | | | | | targets that are loaded llvm-svn: 14758
* Delete the allocate*TargetMachine function, which is now dead.Chris Lattner2004-07-112-10/+2
| | | | | | The shared command line options are now in a header that makes sense. llvm-svn: 14757
* Delete the allocate*TargetMachine function, which is now dead .Chris Lattner2004-07-115-37/+5
| | | | | | The shared command line options are now in a header that makes sense. llvm-svn: 14756
* Delete the allocate*TargetMachine function, which is now dead .Chris Lattner2004-07-111-6/+0
| | | | llvm-svn: 14755
* Delete the allocate*TargetMachine functions. Move options to a header fileChris Lattner2004-07-112-62/+30
| | | | | | that makes sense. llvm-svn: 14754
* Prune unused #includeChris Lattner2004-07-111-1/+0
| | | | llvm-svn: 14753
* Goodbye macro hell, hello nice clean and simple code. This also gives llcChris Lattner2004-07-111-58/+17
| | | | | | | | | the ability to dynamically load and use targets that are not linked into it statically. e.g.: llc -load libparisc.so -march=parisc foo.bc -o foo.s llvm-svn: 14751
OpenPOWER on IntegriCloud