Skip to content
  1. Apr 13, 2010
  2. Feb 08, 2010
  3. Jan 27, 2010
  4. Jan 23, 2010
  5. Dec 19, 2009
    • Bill Wendling's avatar
      Changes from review: · 022d18fa
      Bill Wendling authored
      - Move DisableScheduling flag into TargetOption.h
      - Move SDNodeOrdering into its own header file. Give it a minimal interface that
        doesn't conflate construction with storage.
      - Move assigning the ordering into the SelectionDAGBuilder.
      
      This isn't used yet, so there should be no functional changes.
      
      llvm-svn: 91727
      022d18fa
  6. Sep 21, 2009
    • Reid Kleckner's avatar
      Implement the JIT side of the GDB JIT debugging interface. To enable this · 9a10db8c
      Reid Kleckner authored
      feature, either build the JIT in debug mode to enable it by default or pass
      -jit-emit-debug to lli.
      
      Right now, the only debug information that this communicates to GDB is call
      frame information, since it's already being generated to support exceptions in
      the JIT.  Eventually, when DWARF generation isn't tied so tightly to AsmPrinter,
      it will be easy to push that information to GDB through this interface.
      
      Here's a step-by-step breakdown of how the feature works:
      
      - The JIT generates the machine code and DWARF call frame info
        (.eh_frame/.debug_frame) for a function into memory.
      - The JIT copies that info into an in-memory ELF file with a symbol for the
        function.
      - The JIT creates a code entry pointing to the ELF buffer and adds it to a
        linked list hanging off of a global descriptor at a special symbol that GDB
        knows about.
      - The JIT calls a function marked noinline that GDB knows about and has put an
        internal breakpoint in.
      - GDB catches the breakpoint and reads the global descriptor to look for new
        code.
      - When sees there is new code, it reads the ELF from the inferior's memory and
        adds it to itself as an object file.
      - The JIT continues, and the next time we stop the program, we are able to
        produce a proper backtrace.
      
      Consider running the following program through the JIT:
      
      #include <stdio.h>
      void baz(short z) {
        long w = z + 1;
        printf("%d, %x\n", w, *((int*)NULL));  // SEGFAULT here
      }
      void bar(short y) {
        int z = y + 1;
        baz(z);
      }
      void foo(char x) {
        short y = x + 1;
        bar(y);
      }
      int main(int argc, char** argv) {
        char x = 1;
        foo(x);
      }
      
      Here is a backtrace before this patch:
      Program received signal SIGSEGV, Segmentation fault.
      [Switching to Thread 0x2aaaabdfbd10 (LWP 25476)]
      0x00002aaaabe7d1a8 in ?? ()
      (gdb) bt
      #0  0x00002aaaabe7d1a8 in ?? ()
      #1  0x0000000000000003 in ?? ()
      #2  0x0000000000000004 in ?? ()
      #3  0x00032aaaabe7cfd0 in ?? ()
      #4  0x00002aaaabe7d12c in ?? ()
      #5  0x00022aaa00000003 in ?? ()
      #6  0x00002aaaabe7d0aa in ?? ()
      #7  0x01000002abe7cff0 in ?? ()
      #8  0x00002aaaabe7d02c in ?? ()
      #9  0x0100000000000001 in ?? ()
      #10 0x00000000014388e0 in ?? ()
      #11 0x00007fff00000001 in ?? ()
      #12 0x0000000000b870a2 in llvm::JIT::runFunction (this=0x1405b70,
      F=0x14024e0, ArgValues=@0x7fffffffe050)
         at /home/rnk/llvm-gdb/lib/ExecutionEngine/JIT/JIT.cpp:395
      #13 0x0000000000baa4c5 in llvm::ExecutionEngine::runFunctionAsMain
      (this=0x1405b70, Fn=0x14024e0, argv=@0x13f06f8, envp=0x7fffffffe3b0)
         at /home/rnk/llvm-gdb/lib/ExecutionEngine/ExecutionEngine.cpp:377
      #14 0x00000000007ebd52 in main (argc=2, argv=0x7fffffffe398,
      envp=0x7fffffffe3b0) at /home/rnk/llvm-gdb/tools/lli/lli.cpp:208
      
      And a backtrace after this patch:
      Program received signal SIGSEGV, Segmentation fault.
      0x00002aaaabe7d1a8 in baz ()
      (gdb) bt
      #0  0x00002aaaabe7d1a8 in baz ()
      #1  0x00002aaaabe7d12c in bar ()
      #2  0x00002aaaabe7d0aa in foo ()
      #3  0x00002aaaabe7d02c in main ()
      #4  0x0000000000b870a2 in llvm::JIT::runFunction (this=0x1405b70,
      F=0x14024e0, ArgValues=...)
         at /home/rnk/llvm-gdb/lib/ExecutionEngine/JIT/JIT.cpp:395
      #5  0x0000000000baa4c5 in llvm::ExecutionEngine::runFunctionAsMain
      (this=0x1405b70, Fn=0x14024e0, argv=..., envp=0x7fffffffe3c0)
         at /home/rnk/llvm-gdb/lib/ExecutionEngine/ExecutionEngine.cpp:377
      #6  0x00000000007ebd52 in main (argc=2, argv=0x7fffffffe3a8,
      envp=0x7fffffffe3c0) at /home/rnk/llvm-gdb/tools/lli/lli.cpp:208
      
      llvm-svn: 82418
      9a10db8c
  7. Aug 22, 2009
  8. Aug 11, 2009
    • Jim Grosbach's avatar
      SjLj based exception handling unwinding support. This patch is nasty, brutish · 693e36a3
      Jim Grosbach authored
      and short. Well, it's kinda short. Definitely nasty and brutish.
      
      The front-end generates the register/unregister calls into the SjLj runtime,
      call-site indices and landing pad dispatch. The back end fills in the LSDA
      with the call-site information provided by the front end. Catch blocks are
      not yet implemented.
      
      Built on Darwin and verified no llvm-core "make check" regressions.
      
      llvm-svn: 78625
      693e36a3
  9. Jul 15, 2009
    • Daniel Dunbar's avatar
      Reapply TargetRegistry refactoring commits. · e833810a
      Daniel Dunbar authored
      --- Reverse-merging r75799 into '.':
       U   test/Analysis/PointerTracking
      U    include/llvm/Target/TargetMachineRegistry.h
      U    include/llvm/Target/TargetMachine.h
      U    include/llvm/Target/TargetRegistry.h
      U    include/llvm/Target/TargetSelect.h
      U    tools/lto/LTOCodeGenerator.cpp
      U    tools/lto/LTOModule.cpp
      U    tools/llc/llc.cpp
      U    lib/Target/PowerPC/PPCTargetMachine.h
      U    lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
      U    lib/Target/PowerPC/PPCTargetMachine.cpp
      U    lib/Target/PowerPC/PPC.h
      U    lib/Target/ARM/ARMTargetMachine.cpp
      U    lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
      U    lib/Target/ARM/ARMTargetMachine.h
      U    lib/Target/ARM/ARM.h
      U    lib/Target/XCore/XCoreTargetMachine.cpp
      U    lib/Target/XCore/XCoreTargetMachine.h
      U    lib/Target/PIC16/PIC16TargetMachine.cpp
      U    lib/Target/PIC16/PIC16TargetMachine.h
      U    lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp
      U    lib/Target/Alpha/AlphaTargetMachine.cpp
      U    lib/Target/Alpha/AlphaTargetMachine.h
      U    lib/Target/X86/X86TargetMachine.h
      U    lib/Target/X86/X86.h
      U    lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h
      U    lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp
      U    lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.h
      U    lib/Target/X86/X86TargetMachine.cpp
      U    lib/Target/MSP430/MSP430TargetMachine.cpp
      U    lib/Target/MSP430/MSP430TargetMachine.h
      U    lib/Target/CppBackend/CPPTargetMachine.h
      U    lib/Target/CppBackend/CPPBackend.cpp
      U    lib/Target/CBackend/CTargetMachine.h
      U    lib/Target/CBackend/CBackend.cpp
      U    lib/Target/TargetMachine.cpp
      U    lib/Target/IA64/IA64TargetMachine.cpp
      U    lib/Target/IA64/AsmPrinter/IA64AsmPrinter.cpp
      U    lib/Target/IA64/IA64TargetMachine.h
      U    lib/Target/IA64/IA64.h
      U    lib/Target/MSIL/MSILWriter.cpp
      U    lib/Target/CellSPU/SPUTargetMachine.h
      U    lib/Target/CellSPU/SPU.h
      U    lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp
      U    lib/Target/CellSPU/SPUTargetMachine.cpp
      U    lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp
      U    lib/Target/Mips/MipsTargetMachine.cpp
      U    lib/Target/Mips/MipsTargetMachine.h
      U    lib/Target/Mips/Mips.h
      U    lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp
      U    lib/Target/Sparc/SparcTargetMachine.cpp
      U    lib/Target/Sparc/SparcTargetMachine.h
      U    lib/ExecutionEngine/JIT/TargetSelect.cpp
      U    lib/Support/TargetRegistry.cpp
      
      llvm-svn: 75820
      e833810a
    • Stuart Hastings's avatar
      Revert 75762, 75763, 75766..75769, 75772..75775, 75778, 75780, 75782 to repair... · 338191cd
      Stuart Hastings authored
      Revert 75762, 75763, 75766..75769, 75772..75775, 75778, 75780, 75782 to repair broken LLVM-GCC build.
      Will revert 75770 in the llvm-gcc trunk.
      
      llvm-svn: 75799
      338191cd
    • Daniel Dunbar's avatar
      Provide TargetMachine implementations with reference to Target they were created · 6db8134e
      Daniel Dunbar authored
      from.
       - This commit is almost entirely propogating the reference through the
         TargetMachine subclasses' constructor calls.
      
      llvm-svn: 75778
      6db8134e
  10. Jun 09, 2009
  11. Jun 05, 2009
    • Devang Patel's avatar
      Add new function attribute - noimplicitfloat · d1c7d349
      Devang Patel authored
      Update code generator to use this attribute and remove NoImplicitFloat target option.
      Update llc to set this attribute when -no-implicit-float command line option is used.
      
      llvm-svn: 72959
      d1c7d349
    • Devang Patel's avatar
      Add new function attribute - noredzone. · 72a4d2fe
      Devang Patel authored
      Update code generator to use this attribute and remove DisableRedZone target option.
      Update llc to set this attribute when -disable-red-zone command line option is used.
      
      llvm-svn: 72894
      72a4d2fe
  12. Mar 25, 2009
  13. Mar 20, 2009
  14. Mar 11, 2009
  15. Jan 27, 2009
  16. Jan 26, 2009
  17. Oct 14, 2008
  18. Oct 07, 2008
  19. Oct 02, 2008
  20. Sep 08, 2008
    • Bill Wendling's avatar
      Accidental commit of partial 'stack canaries' code · 6fe5fe42
      Bill Wendling authored
      llvm-svn: 55937
      6fe5fe42
    • Bill Wendling's avatar
      Reverting r55898 to r55909. One of these patches was causing an ICE during the... · 99b83712
      Bill Wendling authored
      Reverting r55898 to r55909. One of these patches was causing an ICE during the full bootstrap on Darwin:
      
      /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc
      -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/
      -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/bin/
      -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/lib/
      -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/include
      -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/sys-include
      -O2  -O2 -g -O2  -DIN_GCC    -W -Wall -Wwrite-strings
      -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition
      -isystem ./include  -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2
      -D__GCC_FLOAT_NOT_NEEDED  -I. -I. -I../../llvm-gcc.src/gcc
      -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include
      -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include
      -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber
      -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include
      -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include
      -DSHARED -m64 -DL_negdi2 -c ../../llvm-gcc.src/gcc/libgcc2.c -o
      libgcc/x86_64/_negdi2_s.o
      Assertion failed: (TargetRegisterInfo::isVirtualRegister(regA) &&
      TargetRegisterInfo::isVirtualRegister(regB) && "cannot update physical
      register live information"), function runOnMachineFunction, file
      /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/lib/CodeGen/TwoAddressInstructionPass.cpp,
      line 311.
      /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc
      -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/
      -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/bin/
      -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/lib/
      -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/include
      -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/sys-include
      -O2  -O2 -g -O2  -DIN_GCC    -W -Wall -Wwrite-strings
      -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition
      -isystem ./include  -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2
      -D__GCC_FLOAT_NOT_NEEDED  -I. -I. -I../../llvm-gcc.src/gcc
      -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include
      -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include
      -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber
      -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include
      -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include
      -DSHARED -m64 -DL_lshrdi3 -c ../../llvm-gcc.src/gcc/libgcc2.c -o
      libgcc/x86_64/_lshrdi3_s.o
      ../../llvm-gcc.src/gcc/unwind-dw2.c:1527: internal compiler error: Abort trap
      Please submit a full bug report,
      with preprocessed source if appropriate.
      See <URL:http://developer.apple.com/bugreporter> for instructions.
      {standard input}:unknown:Undefined local symbol LBB21_11
      {standard input}:unknown:Undefined local symbol LBB21_12
      {standard input}:unknown:Undefined local symbol LBB21_13
      {standard input}:unknown:Undefined local symbol LBB21_8
      
      llvm-svn: 55928
      99b83712
  21. Aug 05, 2008
  22. Jul 31, 2008
  23. Jul 02, 2008
  24. May 31, 2008
  25. May 13, 2008
  26. May 06, 2008
  27. Apr 24, 2008
  28. Apr 23, 2008
  29. Apr 14, 2008
  30. Apr 08, 2008
  31. Mar 25, 2008
  32. Dec 29, 2007
  33. Oct 11, 2007
Loading