- Jul 12, 2005
-
-
Chris Lattner authored
llvm-svn: 22399
-
Chris Lattner authored
llvm-svn: 22398
-
Andrew Lenharth authored
llvm-svn: 22397
-
Nate Begeman authored
llvm-svn: 22396
-
Jeff Cohen authored
llvm-svn: 22395
-
Jeff Cohen authored
llvm-svn: 22394
-
Jeff Cohen authored
llvm-svn: 22393
-
Nate Begeman authored
to the constructor. llvm-svn: 22392
-
Chris Lattner authored
llvm-svn: 22391
-
Chris Lattner authored
llvm-svn: 22390
-
Nate Begeman authored
Implement the X86 Subtarget. This consolidates the checks for target triple, and setting options based on target triple into one place. This allows us to convert the asm printer and isel over from being littered with "forDarwin", "forCygwin", etc. into just having the appropriate flags for each subtarget feature controlling the code for that feature. This patch also implements indirect external and weak references in the X86 pattern isel, for darwin. Next up is to convert over the asm printers to use this new interface. llvm-svn: 22389
-
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
-