- Jul 13, 2004
-
-
Chris Lattner authored
code. llvm-svn: 14785
-
Chris Lattner authored
"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
-
Misha Brukman authored
llvm-svn: 14782
-
Misha Brukman authored
llvm-svn: 14781
-
Misha Brukman authored
llvm-svn: 14780
-
- Jul 12, 2004
-
-
Chris Lattner authored
llvm-svn: 14776
-
Chris Lattner authored
llvm-svn: 14775
-
Chris Lattner authored
Reid, this might matter to you :) llvm-svn: 14774
-
Chris Lattner authored
llvm-svn: 14767
-
- Jul 11, 2004
-
-
Reid Spencer authored
- 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
-
Reid Spencer authored
- Add read_float and read_double in preparation for a correct implementation of bytecode floating point support. llvm-svn: 14764
-
Reid Spencer authored
llvm-svn: 14763
-
Reid Spencer authored
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
-
Chris Lattner authored
llvm-svn: 14761
-
Chris Lattner authored
llvm-svn: 14760
-
Chris Lattner authored
llvm-svn: 14759
-
Chris Lattner authored
The shared command line options are now in a header that makes sense. llvm-svn: 14757
-
Chris Lattner authored
The shared command line options are now in a header that makes sense. llvm-svn: 14756
-
Chris Lattner authored
llvm-svn: 14755
-
Chris Lattner authored
also gives the JIT the ability to dynamically load targets. e.g. lli -load libparisc.so -march=parisc foo.bc llvm-svn: 14750
-
Chris Lattner authored
I told you this file wasn't useless :) llvm-svn: 14749
-
Chris Lattner authored
llvm-svn: 14747
-
Chris Lattner authored
llvm-svn: 14745
-
Chris Lattner authored
llvm-svn: 14744
-
Chris Lattner authored
will grow in time. llvm-svn: 14743
-
Chris Lattner authored
is a bad idea. Make tools that want the option #include PluginSupport.h explicitly. llvm-svn: 14738
-
- Jul 10, 2004
-
-
Reid Spencer authored
Patch found and provided by Vladimir Merzliakov. Thanks Vladimir! llvm-svn: 14732
-
Reid Spencer authored
expanded size instead of the file size). Thanks Chris. llvm-svn: 14731
-
Reid Spencer authored
- get rid of PARSE_ERROR macro - add error(std::string) function - use error(std::string) for all errors - make input dependent asserts call error(std::string) instead - ensure asserts are only for logic bugs, not input discrepancies. llvm-svn: 14729
-
- Jul 09, 2004
-
-
Reid Spencer authored
global type plane starts with a length and the TypeTyID value to identify the type plane has having type definitions. This doesn't happen in 1.3 because the types are read from a known position in the file. However, the TypeTyID must be read in (and ignored) if its a 1.2 bytecode file. llvm-svn: 14728
-
Chris Lattner authored
llvm-svn: 14726
-
Chris Lattner authored
llvm-svn: 14725
-
Chris Lattner authored
llvm-svn: 14724
-
Misha Brukman authored
The large diff is because of indentation of a whole region * Fix querying predecessor blocks in SelectPHINodes(), thanks to Brian (v8) * Add support for external functions malloc() and free() * Fix some code indentation Remember, kids: It's not plagiarism if you "creatively borrow" from your sources. It's called "research"! llvm-svn: 14723
-
Misha Brukman authored
llvm-svn: 14722
-
Misha Brukman authored
* Fix spacing, grammar in comment * Make code layout consistent * Wrap code at 80 cols * Delete spurious blank lines No functional changes. llvm-svn: 14721
-
Alkis Evlogimenos authored
llvm-svn: 14720
-
Alkis Evlogimenos authored
llvm-svn: 14719
-
Chris Lattner authored
llvm-svn: 14708
-
Chris Lattner authored
llvm-svn: 14707
-