Skip to content
  1. Dec 02, 2008
  2. Nov 18, 2008
  3. Oct 30, 2008
  4. Oct 17, 2008
    • Dan Gohman's avatar
      Fun x86 encoding tricks: when adding an immediate value of 128, · ca0546fa
      Dan Gohman authored
      use a SUB instruction instead of an ADD, because -128 can be
      encoded in an 8-bit signed immediate field, while +128 can't be.
      This avoids the need for a 32-bit immediate field in this case.
      
      A similar optimization applies to 64-bit adds with 0x80000000,
      with the 32-bit signed immediate field.
      
      To support this, teach tablegen how to handle 64-bit constants.
      
      llvm-svn: 57663
      ca0546fa
    • Dan Gohman's avatar
      Define patterns for shld and shrd that match immediate · a39b0a1f
      Dan Gohman authored
      shift counts, and patterns that match dynamic shift counts
      when the subtract is obscured by a truncate node.
      
      Add DAGCombiner support for recognizing rotate patterns
      when the shift counts are defined by truncate nodes.
      
      Fix and simplify the code for commuting shld and shrd
      instructions to work even when the given instruction doesn't
      have a parent, and when the caller needs a new instruction.
      
      These changes allow LLVM to use the shld, shrd, rol, and ror
      instructions on x86 to replace equivalent code using two
      shifts and an or in many more cases.
      
      llvm-svn: 57662
      a39b0a1f
  5. Oct 12, 2008
  6. Oct 01, 2008
  7. Sep 16, 2008
  8. Sep 12, 2008
  9. Sep 08, 2008
    • Anton Korobeynikov's avatar
      Reapply 55899: First draft of EH support on x86/64-linux · 2fd24e77
      Anton Korobeynikov authored
      Now with fix, which prevents subtle codegen bug to trigger on darwin.
      No fix for bug though, it's still there.
      
      llvm-svn: 55955
      2fd24e77
    • 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
    • Anton Korobeynikov's avatar
      First draft of EH support on x86/64-linux · 82b95400
      Anton Korobeynikov authored
      llvm-svn: 55899
      82b95400
  10. Aug 30, 2008
  11. Aug 28, 2008
    • Dale Johannesen's avatar
      Split the ATOMIC NodeType's to include the size, e.g. · 41be0d44
      Dale Johannesen authored
      ATOMIC_LOAD_ADD_{8,16,32,64} instead of ATOMIC_LOAD_ADD.
      Increased the Hardcoded Constant OpActionsCapacity to match.
      Large but boring; no functional change.
      
      This is to support partial-word atomics on ppc; i8 is
      not a valid type there, so by the time we get to lowering, the
      ATOMIC_LOAD nodes looks the same whether the type was i8 or i32.
      The information can be added to the AtomicSDNode, but that is the
      largest SDNode; I don't fully understand the SDNode allocation,
      but it is sensitive to the largest node size, so increasing
      that must be bad.  This is the alternative.
      
      llvm-svn: 55457
      41be0d44
  12. Aug 27, 2008
  13. Aug 25, 2008
  14. Aug 22, 2008
  15. Aug 20, 2008
  16. Aug 19, 2008
  17. Aug 07, 2008
    • Dan Gohman's avatar
      Re-enable elimination of unnecessary SUBREG_TO_REG instructions in · 527ca7e2
      Dan Gohman authored
      LowerSubregs, and fix an x86-64 isel bug that this exposed.
      
      SUBREG_TO_REG for x86-64 implicit zero extension is only safe for
      isel to generate when the source is known to always have zeros in
      the high 32 bits. The EXTRACT_SUBREG instruction does not clear
      the high 32 bits.
      
      llvm-svn: 54444
      527ca7e2
  18. Aug 06, 2008
  19. Jul 30, 2008
    • Dan Gohman's avatar
      Reapply r54147 with a constraint to only use the 8-bit · 86b06335
      Dan Gohman authored
      subreg form on x86-64, to avoid the problem with x86-32
      having GPRs that don't have 8-bit subregs.
      
      Also, change several 16-bit instructions to use 
      equivalent 32-bit instructions. These have a smaller
      encoding and avoid partial-register updates.
      
      llvm-svn: 54223
      86b06335
  20. Jul 29, 2008
  21. Jun 25, 2008
  22. May 30, 2008
  23. May 29, 2008
    • Dan Gohman's avatar
      Add patterns for CALL32m and CALL64m. They aren't matched in most · 96af4ddb
      Dan Gohman authored
      cases due to an isel deficiency already noted in
      lib/Target/X86/README.txt, but they can be matched in this fold-call.ll
      testcase, for example.
      
      This is interesting mainly because it exposes a tricky tblgen bug;
      tblgen was incorrectly computing the starting index for variable_ops
      in the case of a complex pattern.
      
      llvm-svn: 51706
      96af4ddb
  24. May 05, 2008
  25. May 04, 2008
  26. Apr 19, 2008
Loading