- Jul 12, 2005
-
-
Nate Begeman authored
llvm-svn: 22388
-
Chris Lattner authored
Instead of emitting a JIT stub that looks like this: internal void %l1_main_entry_2E_ce_wrapper(int) { header: %resolver = call sbyte* %getPointerToNamedFunction( sbyte* getelementptr ([20 x sbyte]* %l1_main_entry_2E_ce_name, int 0, int 0) ) ; <sbyte*> [#uses=1] %resolverCast = cast sbyte* %resolver to void (int)* ; <void (int)*> [#uses=1] call void %resolverCast( int %0 ) ret void } Emit one that looks like this: internal void %l1_main_entry_2E_ce_wrapper(int) { Entry: %fpcache = load void (int)** %l1_main_entry_2E_ce.fpcache ; <void (int)*> [#uses=2] %isNull = seteq void (int)* %fpcache, null ; <bool> [#uses=1] br bool %isNull, label %lookupfp, label %usecache usecache: ; preds = %lookupfp, %Entry %fp = phi void (int)* [ %resolverCast, %lookupfp ], [ %fpcache, %Entry ] ; <void (int)*> [#uses=1] call void %fp( int %0 ) ret void lookupfp: ; preds = %Entry %resolver = call sbyte* %getPointerToNamedFunction( sbyte* getelementptr ([20 x sbyte]* %l1_main_entry_2E_ce_name, int 0, int 0) ) ; <sbyte*> [#uses=1] %resolverCast = cast sbyte* %resolver to void (int)* ; <void (int)*> [#uses=2] store void (int)* %resolverCast, void (int)** %l1_main_entry_2E_ce.fpcache br label %usecache } This makes the JIT debugger *MUCH* faster on large programs, as getPointerToNamedFunction takes time linear with the size of the program, and before we would call it every time a function in the text module was called from the safe module (ouch!). llvm-svn: 22387
-
Chris Lattner authored
llvm-svn: 22386
-
Chris Lattner authored
llvm-svn: 22385
-
- Jul 11, 2005
-
-
Andrew Lenharth authored
llvm-svn: 22384
-
Andrew Lenharth authored
# define errno (*__errno_location ()) *shakes head llvm-svn: 22383
-
Chris Lattner authored
llvm-svn: 22382
-
Chris Lattner authored
llvm-svn: 22381
-
Chris Lattner authored
llvm-svn: 22380
-
Chris Lattner authored
llvm-svn: 22379
-
Chris Lattner authored
allows objdump to know which function we are emitting to: 00000000 <foo>: <---- 0: b8 01 00 00 00 mov $0x1,%eax 5: 03 44 24 04 add 0x4(%esp,1),%eax 9: c3 ret ... and allows .o files to be useful for linking :) llvm-svn: 22378
-
Chris Lattner authored
llvm-svn: 22377
-
Chris Lattner authored
after itself. llvm-svn: 22376
-
Chris Lattner authored
Add a *VERY INITIAL* machine code emitter class. This is enough to take this C function: int foo(int X) { return X +1; } and make objdump produce the following: $ objdump -d t-llvm.o t-llvm.o: file format elf32-i386 Disassembly of section .text: 00000000 <.text>: 0: b8 01 00 00 00 mov $0x1,%eax 5: 03 44 24 04 add 0x4(%esp,1),%eax 9: c3 ret Anything using branches or refering to the constant pool or requiring relocations will not work yet. llvm-svn: 22375
-
Chris Lattner authored
llvm-svn: 22374
-
Chris Lattner authored
llvm-svn: 22373
-
Chris Lattner authored
llvm-svn: 22372
-
Chris Lattner authored
characters from them. llvm-svn: 22371
-
Chris Lattner authored
llvm-svn: 22370
-
Chris Lattner authored
llvm-svn: 22369
-
- Jul 10, 2005
-
-
Chris Lattner authored
This is the last MVTSDNode. This allows us to eliminate a bunch of special case code for handling MVTSDNodes. Also, remove some uses of dyn_cast that should really be cast (which is cheaper in a release build). llvm-svn: 22368
-
Chris Lattner authored
This is the last MVTSDNode. This allows us to eliminate a bunch of special case code for handling MVTSDNodes. llvm-svn: 22367
-
Chris Lattner authored
llvm-svn: 22366
-
Chris Lattner authored
Also update some comments that Andrew forgot to update when he changed loads/stores. llvm-svn: 22365
-
Chris Lattner authored
MVTSDNode class. This class is used to provide an operand to operators that require an extra type. We start by converting FP_ROUND_INREG and SIGN_EXTEND_INREG over to using it. llvm-svn: 22364
-
- Jul 09, 2005
-
-
Jeff Cohen authored
llvm-svn: 22363
-
Jeff Cohen authored
2. Fix bug in eraseSuffix where it allows /path/.suffix to become /path/ llvm-svn: 22362
-
- Jul 08, 2005
-
-
Reid Spencer authored
exist but just return false instead. llvm-svn: 22361
-
Reid Spencer authored
exit from isBytecodeLPath with "false". llvm-svn: 22360
-
Reid Spencer authored
1. Use isValid() to check validity of the resulting path name in the eraseSuffix even though we can't think of a case where eraseSuffix could possibly cause an invalid path name. 2. Rewrite isValid() to not use the deprecated realpath function any more. It now just uses isascii to make sure all the characters are legit. llvm-svn: 22359
-
Chris Lattner authored
Add support for emitting external and .bss symbols. llvm-svn: 22358
-
Jeff Cohen authored
llvm-svn: 22357
-
Jeff Cohen authored
llvm-svn: 22356
-
Jeff Cohen authored
llvm-svn: 22355
-
Reid Spencer authored
This chagne just renames some sys::Path methods to ensure they are not misused. The Path documentation now divides methods into two dimensions: Path/Disk and accessor/mutator. Path accessors and mutators only operate on the Path object itself without making any disk accesses. Disk accessors and mutators will also access or modify the file system. Because of the potentially destructive nature of disk mutators, it was decided that all such methods should end in the work "Disk" to ensure the user recognizes that the change will occur on the file system. This patch makes that change. The method name changes are: makeReadable -> makeReadableOnDisk makeWriteable -> makeWriteableOnDisk makeExecutable -> makeExecutableOnDisk setStatusInfo -> setStatusInfoOnDisk createDirectory -> createDirectoryOnDisk createFile -> createFileOnDisk createTemporaryFile -> createTemporaryFileOnDisk destroy -> eraseFromDisk rename -> renamePathOnDisk These changes pass the Linux Deja Gnu tests. llvm-svn: 22354
-
Jeff Cohen authored
llvm-svn: 22353
-
Jeff Cohen authored
llvm-svn: 22352
-
Nate Begeman authored
Add support for running bugpoint on mac os x for intel llvm-svn: 22351
-
Reid Spencer authored
been compiled or tested. llvm-svn: 22350
-
Reid Spencer authored
Get rid of the difference between file paths and directory paths. The Path class now simply stores a path that can refer to either a file or a directory. This required various changes in the implementation and interface of the class with the corresponding impact to its users. Doxygen comments were also updated to reflect these changes. Interface changes are: appendDirectory -> appendComponent appendFile -> appendComponent elideDirectory -> eraseComponent elideFile -> eraseComponent elideSuffix -> eraseSuffix renameFile -> rename setDirectory -> set setFile -> set Changes pass Dejagnu and llvm-test/SingleSource tests. llvm-svn: 22349
-