- Jul 14, 2005
-
-
Chris Lattner authored
llvm-svn: 22432
-
Reid Spencer authored
llvm-svn: 22430
-
Chris Lattner authored
llvm-svn: 22429
-
Reid Spencer authored
llvm-svn: 22428
-
- Jul 13, 2005
-
-
Reid Spencer authored
GRAPHVIZ will contain the path to the program if its found (or "echo Graphviz" if not) and the #define HAVE_GRAPHVIZ will be defined if its found. llvm-svn: 22424
-
Reid Spencer authored
of pthreads is missing that call (despite it violating the spec). llvm-svn: 22423
-
Jeff Cohen authored
llvm-svn: 22422
-
Jeff Cohen authored
llvm-svn: 22421
-
Jeff Cohen authored
llvm-svn: 22420
-
Chris Lattner authored
It is not safe to call LegalizeOp on something that has already been legalized. Instead, just force another iteration of legalization. This could affect all platforms but X86, as this codepath is dynamically dead on X86 (ISD::MEMSET and friends are legal). llvm-svn: 22419
-
Chris Lattner authored
llvm-svn: 22418
-
Chris Lattner authored
llvm-svn: 22417
-
Chris Lattner authored
though. llvm-svn: 22416
-
Reid Spencer authored
JIT can run against a multi-threaded program without getting its data structures messed up. Also had to add the examples directory to the path for the tests so that ParallelJIT can be found. llvm-svn: 22415
-
Reid Spencer authored
llvm-svn: 22414
-
- Jul 12, 2005
-
-
Reid Spencer authored
Add an example program that utilizes multiple threads in the JIT to process work. This was used by Evan Jones as the original test case for ensuring that the ExecutionEngine was thread safe. Original source by Evan Jones (adapted from other LLVM JIT examples) and made LLVM style compliant by Reid Spencer. llvm-svn: 22411
-
Nate Begeman authored
working before modifying the asm printer to use the subtarget info. llvm-svn: 22408
-
Nate Begeman authored
llvm-svn: 22407
-
Reid Spencer authored
llvm-svn: 22405
-
Reid Spencer authored
This patch completes the changes for making lli thread-safe. Here's the list of changes: * The Support/ThreadSupport* files were removed and replaced with the MutexGuard.h file since all ThreadSupport* declared was a Mutex Guard. The implementation of MutexGuard.h is now based on sys::Mutex which hides its implementation and makes it unnecessary to have the -NoSupport.h and -PThreads.h versions of ThreadSupport. * All places in ExecutionEngine that previously referred to "Mutex" now refer to sys::Mutex * All places in ExecutionEngine that previously referred to "MutexLocker" now refer to MutexGuard (this is frivolous but I believe the technically correct name for such a class is "Guard" not a "Locker"). These changes passed all of llvm-test. All we need now are some test cases that actually use multiple threads. llvm-svn: 22404
-
Reid Spencer authored
Add a Mutex class for thread synchronization in a platform-independent way. The current implementation only supports pthreads. Win32 use of Critical Sections will be added later. The design permits other threading models to be used if (and only if) pthreads is not available. llvm-svn: 22403
-
Reid Spencer authored
* Add check for pthread.h * Make sure -lpthread gets added to LIBS if its available llvm-svn: 22402
-
Reid Spencer authored
Make sure that -lpthread gets added to LIBS variable which puts it at the end of the tools' link commands, if libpthread.a is found. Add a test for pthread.h so we can use #ifdef HAVE_PTHREAD_H llvm-svn: 22401
-
Chris Lattner authored
llvm-svn: 22400
-
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
-