Skip to content
  1. Jun 12, 2013
  2. Feb 19, 2013
  3. Feb 15, 2013
  4. Feb 14, 2013
  5. Feb 04, 2013
    • Evgeniy Stepanov's avatar
      More MSan/ASan annotations. · 1f5a7149
      Evgeniy Stepanov authored
      This change lets us bootstrap LLVM/Clang under ASan and MSan. It contains
      fixes for 2 issues:
      
      - X86JIT reads return address from stack, which MSan does not know is
        initialized.
      - bugpoint tests run binaries with RLIMIT_AS. This does not work with certain
        Sanitizers.
      
      We are no longer including config.h in Compiler.h with this change.
      
      llvm-svn: 174306
      1f5a7149
  6. Jan 02, 2013
    • Chandler Carruth's avatar
      Move all of the header files which are involved in modelling the LLVM IR · 9fb823bb
      Chandler Carruth authored
      into their new header subdirectory: include/llvm/IR. This matches the
      directory structure of lib, and begins to correct a long standing point
      of file layout clutter in LLVM.
      
      There are still more header files to move here, but I wanted to handle
      them in separate commits to make tracking what files make sense at each
      layer easier.
      
      The only really questionable files here are the target intrinsic
      tablegen files. But that's a battle I'd rather not fight today.
      
      I've updated both CMake and Makefile build systems (I think, and my
      tests think, but I may have missed something).
      
      I've also re-sorted the includes throughout the project. I'll be
      committing updates to Clang, DragonEgg, and Polly momentarily.
      
      llvm-svn: 171366
      9fb823bb
  7. Aug 29, 2012
  8. Aug 21, 2012
  9. Feb 13, 2012
    • Ahmed Charles's avatar
      Fix various issues (or do cleanups) found by enabling certain MSVC warnings. · 32e983e4
      Ahmed Charles authored
      - Use unsigned literals when the desired result is unsigned. This mostly allows unsigned/signed mismatch warnings to be less noisy even if they aren't on by default.
      - Remove misplaced llvm_unreachable.
      - Add static to a declaration of a function on MSVC x86 only.
      - Change some instances of calling a static function through a variable to simply calling that function while removing the unused variable.
      
      llvm-svn: 150364
      32e983e4
  10. Jan 20, 2012
  11. Dec 03, 2011
  12. Feb 05, 2011
  13. Nov 29, 2010
  14. Oct 23, 2010
  15. Mar 15, 2010
  16. Feb 08, 2010
  17. Jan 05, 2010
  18. Dec 15, 2009
  19. Nov 24, 2009
    • Jeffrey Yasskin's avatar
      * Move stub allocation inside the JITEmitter, instead of exposing a · f2ad5714
      Jeffrey Yasskin authored
      way for each TargetJITInfo subclass to allocate its own stubs. This
      means stubs aren't as exactly-sized anymore, but it lets us get rid of
      TargetJITInfo::emitFunctionStubAtAddr(), which lets ARM and PPC
      support the eager JIT, fixing http://llvm.org/PR4816.
      
      * Rename the JITEmitter's stub creation functions to describe the kind
      of stub they create. So far, all of them create lazy-compilation
      stubs, but they sometimes get used when far-call stubs are needed.
      Fixing http://llvm.org/PR5201 will involve fixing this.
      
      llvm-svn: 89715
      f2ad5714
  20. Nov 23, 2009
  21. Nov 16, 2009
    • Jeffrey Yasskin's avatar
      Make X86-64 in the Large model always emit 64-bit calls. · 10d3604a
      Jeffrey Yasskin authored
      The large code model is documented at
      http://www.x86-64.org/documentation/abi.pdf and says that calls should
      assume their target doesn't live within the 32-bit pc-relative offset
      that fits in the call instruction.
      
      To do this, we turn off the global-address->target-global-address
      conversion in X86TargetLowering::LowerCall(). The first attempt at
      this broke the lazy JIT because it can separate the movabs(imm->reg)
      from the actual call instruction. The lazy JIT receives the address of
      the movabs as a relocation and needs to record the return address from
      the call; and then when that call happens, it needs to patch the
      movabs with the newly-compiled target. We could thread the call
      instruction into the relocation and record the movabs<->call mapping
      explicitly, but that seems to require at least as much new
      complication in the code generator as this change.
      
      To fix this, we make lazy functions _always_ go through a call
      stub. You'd think we'd only have to force lazy calls through a stub on
      difficult platforms, but that turns out to break indirect calls
      through a function pointer. The right fix for that is to distinguish
      between calls and address-of operations on uncompiled functions, but
      that's complex enough to leave for someone else to do.
      
      Another attempt at this defined a new CALL64i pseudo-instruction,
      which expanded to a 2-instruction sequence in the assembly output and
      was special-cased in the X86CodeEmitter's emitInstruction()
      function. That broke indirect calls in the same way as above.
      
      This patch also removes a hack forcing Darwin to the small code model.
      Without far-call-stubs, the small code model requires things of the
      JITMemoryManager that the DefaultJITMemoryManager can't provide.
      
      Thanks to echristo for lots of testing!
      
      llvm-svn: 88984
      10d3604a
  22. Sep 15, 2009
  23. Sep 06, 2009
  24. Sep 03, 2009
  25. Aug 28, 2009
  26. Aug 24, 2009
  27. Aug 20, 2009
  28. Aug 05, 2009
  29. Aug 03, 2009
  30. Jul 14, 2009
  31. Jul 12, 2009
  32. Jul 11, 2009
    • Torok Edwin's avatar
      assert(0) -> LLVM_UNREACHABLE. · 56d06597
      Torok Edwin authored
      Make llvm_unreachable take an optional string, thus moving the cerr<< out of
      line.
      LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
      NDEBUG builds.
      
      llvm-svn: 75379
      56d06597
  33. Jul 08, 2009
  34. May 30, 2009
  35. Feb 18, 2009
    • Nate Begeman's avatar
      Add support to the JIT for true non-lazy operation. When a call to a function · 18d85e74
      Nate Begeman authored
      that has not been JIT'd yet, the callee is put on a list of pending functions
      to JIT.  The call is directed through a stub, which is updated with the address
      of the function after it has been JIT'd.  A new interface for allocating and
      updating empty stubs is provided.
      
      Add support for removing the ModuleProvider the JIT was created with, which
      would otherwise invalidate the JIT's PassManager, which is initialized with the
      ModuleProvider's Module.
      
      Add support under a new ExecutionEngine flag for emitting the infomration 
      necessary to update Function and GlobalVariable stubs after JITing them, by
      recording the address of the stub and the name of the GlobalValue.  This allows
      code to be copied from one address space to another, where libraries may live
      at different virtual addresses, and have the stubs updated with their new
      correct target addresses.
      
      llvm-svn: 64906
      18d85e74
  36. Feb 06, 2009
Loading