Skip to content
  1. Jul 14, 2005
  2. Jul 13, 2005
  3. Jul 12, 2005
    • Reid Spencer's avatar
      For PR418: · 6855097c
      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
      6855097c
    • Nate Begeman's avatar
      Check in the last of the darwin-specific code necessary to get shootout · 8dd96ec7
      Nate Begeman authored
      working before modifying the asm printer to use the subtarget info.
      
      llvm-svn: 22408
      8dd96ec7
    • Nate Begeman's avatar
      5fc86e83
    • Reid Spencer's avatar
      Update release notes regarding thread-safe JIT. · 4386e4a8
      Reid Spencer authored
      llvm-svn: 22405
      4386e4a8
    • Reid Spencer's avatar
      For PR540: · 79876f52
      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
      79876f52
    • Reid Spencer's avatar
      For PR540: · f404981b
      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
      f404981b
    • Reid Spencer's avatar
      For PR540: · 1aa7d05f
      Reid Spencer authored
      * Add check for pthread.h
      * Make sure -lpthread gets added to LIBS if its available
      
      llvm-svn: 22402
      1aa7d05f
    • Reid Spencer's avatar
      In support of PR418: · cd59fb7a
      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
      cd59fb7a
    • Chris Lattner's avatar
      Add support for 64-bit elf files · 298ac699
      Chris Lattner authored
      llvm-svn: 22400
      298ac699
    • Chris Lattner's avatar
      Add support for emitting 64-bit integers · c292519a
      Chris Lattner authored
      llvm-svn: 22399
      c292519a
    • Chris Lattner's avatar
      Add some apparently undocumented ELF section header flags · b9e53d89
      Chris Lattner authored
      llvm-svn: 22398
      b9e53d89
    • Andrew Lenharth's avatar
      Fix povray and minor cleanups · 20b534a4
      Andrew Lenharth authored
      llvm-svn: 22397
      20b534a4
    • Nate Begeman's avatar
      Clean up and add comments to the newly implemented subtarget code. · b6daad1f
      Nate Begeman authored
      llvm-svn: 22396
      b6daad1f
    • Jeff Cohen's avatar
      Add new files to Visual Studio projects. · 8161bc5d
      Jeff Cohen authored
      llvm-svn: 22395
      8161bc5d
    • Jeff Cohen's avatar
      ddc8b78c
    • Jeff Cohen's avatar
      VC++ demands that the function returns a value · 33b8232c
      Jeff Cohen authored
      llvm-svn: 22393
      33b8232c
    • Nate Begeman's avatar
      Clean up the TargetSubtarget class a bit, removing an unnecessary argument · df8946de
      Nate Begeman authored
      to the constructor.
      
      llvm-svn: 22392
      df8946de
    • Chris Lattner's avatar
      351817b1
    • Chris Lattner's avatar
      Add a note · f873f4d5
      Chris Lattner authored
      llvm-svn: 22390
      f873f4d5
    • Nate Begeman's avatar
      Implement Subtarget support · f26625e1
      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
      f26625e1
    • Nate Begeman's avatar
      Commit some pending darwin changes before subtarget support. · 83b492b8
      Nate Begeman authored
      llvm-svn: 22388
      83b492b8
    • Chris Lattner's avatar
      Fix PR576. · 986675cb
      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
      986675cb
    • Chris Lattner's avatar
      add a note so I can remember the common t-t's · de69bf99
      Chris Lattner authored
      llvm-svn: 22386
      de69bf99
    • Chris Lattner's avatar
      fix a warning · fd564c6b
      Chris Lattner authored
      llvm-svn: 22385
      fd564c6b
  4. Jul 11, 2005
Loading