Skip to content
  1. Jul 21, 2009
    • Bill Wendling's avatar
      Add the following functions: · a8e2ad3e
      Bill Wendling authored
      - SYSCALL (normal fast system call instruction) [0f 05]
      - SYSENTER (system call entry instruction) [0f 34]
      - SYSEXIT (system call exit instruction) [0f 35]
      - SYSEXIT64 (system call exit instruction to 64-bit user code) [REX.W 0f 35]
      - SYSRET (system call return instruction) [0f 07]
      
      Patch by Sean Callanan.
      
      llvm-svn: 76528
      a8e2ad3e
    • Dale Johannesen's avatar
      revert 76503 while I figure out what's going on · 68cb8d03
      Dale Johannesen authored
      llvm-svn: 76517
      68cb8d03
    • Dale Johannesen's avatar
      Make sure a global matching asm 'i' constraint gets its · a2d2adfa
      Dale Johannesen authored
      flags set properly.  (hasMemory is clearly irrelevant
      when matching 'i', I don't understand what this was
      supposed to be doing.)
      gcc.apple/asm-block-25.c (test passed before by
      accident, but generated code was wrong)
      
      llvm-svn: 76503
      a2d2adfa
  2. Jul 20, 2009
  3. Jul 19, 2009
  4. Jul 18, 2009
  5. Jul 17, 2009
  6. Jul 16, 2009
    • Jakob Stoklund Olesen's avatar
      Silence warning in Linux builds: · c7895d3c
      Jakob Stoklund Olesen authored
      X86InstrInfo.cpp:2272: warning: suggest explicit braces to avoid ambiguous 'else'
      
      llvm-svn: 76105
      c7895d3c
    • Jeffrey Yasskin's avatar
      Add line numbers to OProfile. To do this, I added a processDebugLoc() · efad8e45
      Jeffrey Yasskin authored
      call to the MachineCodeEmitter interface and made copying the start
      line of a function not conditional on whether we're emitting Dwarf
      debug information. I'll propagate the processDebugLoc() calls to the
      non-X86 targets in a followup patch.
      
      In the long run, it'll probably be better to gather this information
      through the DwarfWriter, but the DwarfWriter currently depends on the
      AsmPrinter and TargetAsmInfo, and fixing that would be out of the way
      for this patch.
      
      There's a bug in OProfile 0.9.4 that makes it ignore line numbers for
      addresses above 4G, and a patch fixing it at
      http://thread.gmane.org/gmane.linux.oprofile/7634
      
      Sample output:
      
      $ sudo opcontrol --reset; sudo opcontrol --start-daemon; sudo opcontrol --start; `pwd`/Debug/bin/lli fib.bc; sudo opcontrol --stop
      Signalling daemon... done
      Profiler running.
      fib(40) == 165580141
      Stopping profiling.
      
      $ opreport -g -d -l `pwd`/Debug/bin/lli|head -60
      Overflow stats not available
      CPU: Core 2, speed 1998 MHz (estimated)
      Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000
      vma      samples  %        linenr info                 image name               symbol name
      00007f67a30370b0 25489    61.2554  fib.c:24                    10946.jo                 fib_left
        00007f67a30370b0 1634      6.4106  fib.c:24
        00007f67a30370b1 83        0.3256  fib.c:24
        00007f67a30370b9 1997      7.8348  fib.c:24
        00007f67a30370c6 2080      8.1604  fib.c:27
        00007f67a30370c8 988       3.8762  fib.c:27
        00007f67a30370cd 1315      5.1591  fib.c:27
        00007f67a30370cf 251       0.9847  fib.c:27
        00007f67a30370d3 1191      4.6726  fib.c:27
        00007f67a30370d6 975       3.8252  fib.c:27
        00007f67a30370db 1010      3.9625  fib.c:27
        00007f67a30370dd 242       0.9494  fib.c:27
        00007f67a30370e1 2782     10.9145  fib.c:28
        00007f67a30370e5 3768     14.7828  fib.c:28
        00007f67a30370eb 615       2.4128  (no location information)
        00007f67a30370f3 6558     25.7287  (no location information)
      00007f67a3037100 15603    37.4973  fib.c:29                    10946.jo                 fib_right
        00007f67a3037100 1646     10.5493  fib.c:29
        00007f67a3037101 45        0.2884  fib.c:29
        00007f67a3037109 2372     15.2022  fib.c:29
        00007f67a3037116 2234     14.3178  fib.c:32
        00007f67a3037118 612       3.9223  fib.c:32
        00007f67a303711d 622       3.9864  fib.c:32
        00007f67a303711f 385       2.4675  fib.c:32
        00007f67a3037123 404       2.5892  fib.c:32
        00007f67a3037126 634       4.0633  fib.c:32
        00007f67a303712b 870       5.5759  fib.c:32
        00007f67a303712d 62        0.3974  fib.c:32
        00007f67a3037131 1848     11.8439  fib.c:33
        00007f67a3037135 2840     18.2016  fib.c:33
        00007f67a303713a 1         0.0064  fib.c:33
        00007f67a303713b 1023      6.5564  (no location information)
        00007f67a3037143 5         0.0320  (no location information)
      000000000080c1e4 15        0.0360  MachineOperand.h:150        lli                      llvm::MachineOperand::isReg() const
        000000000080c1e4 6        40.0000  MachineOperand.h:150
        000000000080c1ec 2        13.3333  MachineOperand.h:150
      ...
      
      llvm-svn: 76102
      efad8e45
    • Evan Cheng's avatar
      With recent MC changes, RIP base register is explicitly modeled. Make sure we... · fdd0eb40
      Evan Cheng authored
      With recent MC changes, RIP base register is explicitly modeled. Make sure we add it when x86 V_SET0 / V_SETALLONES (by transforming it into a constpool load) into the use instruction.
      
      llvm-svn: 76094
      fdd0eb40
    • Anton Korobeynikov's avatar
      12b4b7c5
    • Evan Cheng's avatar
      Let callers decide the sub-register index on the def operand of rematerialized instructions. · 84517443
      Evan Cheng authored
      Avoid remat'ing instructions whose def have sub-register indices for now. It's just really really hard to get all the cases right.
      
      llvm-svn: 75900
      84517443
    • Chris Lattner's avatar
      use SUBREG_TO_REG instead of INSERT_SUBREG, this way the code · d8fc886b
      Chris Lattner authored
      generator can know the top bits are zero, not undefined.
      Thanks to Dan for pointing this out.
      
      llvm-svn: 75899
      d8fc886b
    • Daniel Dunbar's avatar
      Kill off <TARGET>MachineModule variables, and <TARGETASMPRINTER>ForceLink · c151c51e
      Daniel Dunbar authored
      variables.
       - Module initialization functions supplanted the need for these.
      
      llvm-svn: 75886
      c151c51e
    • Daniel Dunbar's avatar
      Lift addAssemblyEmitter into LLVMTargetMachine. · d97db682
      Daniel Dunbar authored
       - No functionality change.
      
      llvm-svn: 75859
      d97db682
    • Daniel Dunbar's avatar
      Lift DumpAsm / -print-emitted-asm functionality into LLVMTargetMachine. · c901392b
      Daniel Dunbar authored
       - No intended functionality change.
      
      llvm-svn: 75848
      c901392b
    • Daniel Dunbar's avatar
      Remove old style hacks to register AsmPrinter into TargetMachine. · 5302288c
      Daniel Dunbar authored
       - No intended functionality change.
      
      llvm-svn: 75843
      5302288c
  7. Jul 15, 2009
    • Owen Anderson's avatar
      f945a9ed
    • Bruno Cardoso Lopes's avatar
      use std::vector instead of std::list for both Section and Symbol lists because · 27178639
      Bruno Cardoso Lopes authored
      we care more about random access than insertion/deletion of elements.
      
      llvm-svn: 75828
      27178639
    • 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
      Replace large swaths of copy-n-paste code with obvious helper function... · eb8c83b4
      Daniel Dunbar authored
       - Which was already present in the module!
      
       - I skipped this xform for Alpha, since it runs an extra pass during assembly
         emission, but not when emitting assembly via the DumpAsm flag.
      
       - No functionality change.
      
      --
      ddunbar@giles:llvm$ svn diff | grep '^- ' | sort | uniq -c
        18 -      PM.add(AsmPrinterCtor(ferrs(), *this, true));
        18 -    assert(AsmPrinterCtor && "AsmPrinter was not linked in");
        18 -    if (AsmPrinterCtor)
        18 -  if (DumpAsm) {
        18 -  }
      ddunbar@giles:llvm$ svn diff | grep '^+ ' | sort | uniq -c
        18 +    addAssemblyEmitter(PM, OptLevel, true, ferrs());
        18 +  if (DumpAsm)
      --
      
      llvm-svn: 75782
      eb8c83b4
    • Daniel Dunbar's avatar
      863e587d
    • 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
Loading