Skip to content
  1. Oct 18, 2008
    • Dan Gohman's avatar
      Teach DAGCombine to fold constant offsets into GlobalAddress nodes, · 2fe6bee5
      Dan Gohman authored
      and add a TargetLowering hook for it to use to determine when this
      is legal (i.e. not in PIC mode, etc.)
      
      This allows instruction selection to emit folded constant offsets
      in more cases, such as the included testcase, eliminating the need
      for explicit arithmetic instructions.
      
      This eliminates the need for the C++ code in X86ISelDAGToDAG.cpp
      that attempted to achieve the same effect, but wasn't as effective.
      
      Also, fix handling of offsets in GlobalAddressSDNodes in several
      places, including changing GlobalAddressSDNode's offset from
      int to int64_t.
      
      The Mips, Alpha, Sparc, and CellSPU targets appear to be
      unaware of GlobalAddress offsets currently, so set the hook to
      false on those targets.
      
      llvm-svn: 57748
      2fe6bee5
  2. Oct 16, 2008
  3. Oct 14, 2008
  4. Oct 12, 2008
  5. Oct 08, 2008
    • Duncan Sands's avatar
      Use template to distinguish between function variants. · 32052e82
      Duncan Sands authored
      GCC 4.4.0 gives an error on the "int" declaration for example
      saying that it has already been declared (using the "short"
      one). Using templates here allow the compiler to distinguish
      between the function to choose.
      
      Also, "llvm/Support/DataTypes.h" was not included, leading to
      error messages about not knowing "uint32_t" for example.
      
      Patch by Samuel Tardieu.
      
      llvm-svn: 57292
      32052e82
  6. Oct 03, 2008
  7. Sep 27, 2008
    • Bill Wendling's avatar
      Temporarily reverting r56683. This is causing a failure during the build of llvm-gcc: · c966a737
      Bill Wendling authored
      /Volumes/Gir/devel/llvm/clean/llvm-gcc.obj/./gcc/xgcc -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.obj/./gcc/ -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/bin/ -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/lib/ -isystem /Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/include -isystem /Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/sys-include -mmacosx-version-min=10.4 -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/Gir/devel/llvm/clean/llvm.obj/include -I/Volumes/Gir/devel/llvm/clean/llvm.src/include -fexceptions -fvisibility=hidden -DHIDE_EXPORTS -c ../../llvm-gcc.src/gcc/unwind-dw2-fde-darwin.c -o libgcc/./unwind-dw2-fde-darwin.o
      Assertion failed: (TargetRegisterInfo::isVirtualRegister(regA) && TargetRegisterInfo::isVirtualRegister(regB) && "cannot update physical register live information"), function runOnMachineFunction, file /Volumes/Gir/devel/llvm/clean/llvm.src/lib/CodeGen/TwoAddressInstructionPass.cpp, line 311.
      ../../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}:3521:non-relocatable subtraction expression, "_dwarf_reg_size_table" minus "L20$pb"
      {standard input}:3521:symbol: "_dwarf_reg_size_table" can't be undefined in a subtraction expression
      {standard input}:3520:non-relocatable subtraction expression, "_dwarf_reg_size_table" minus "L20$pb"
      ...
      
      llvm-svn: 56703
      c966a737
  8. Sep 26, 2008
    • Dan Gohman's avatar
      Rename ConstantSDNode's getSignExtended to getSExtValue, for · 6e054833
      Dan Gohman authored
      consistancy with ConstantInt, and re-implement it in terms
      of ConstantInt's getSExtValue.
      
      llvm-svn: 56700
      6e054833
    • Evan Cheng's avatar
      Fix @llvm.frameaddress codegen. FP elimination optimization should be disabled... · d77cbe89
      Evan Cheng authored
      Fix @llvm.frameaddress codegen. FP elimination optimization should be disabled when frame address is desired. Also add support for depth > 0.
      
      llvm-svn: 56683
      d77cbe89
    • Oscar Fuentes's avatar
      CMake: Builds all targets. · cdc95498
      Oscar Fuentes authored
      llvm-svn: 56641
      cdc95498
    • Bill Wendling's avatar
      If we have a function with an unreachable statement such that the ending debug · 374d7f2b
      Bill Wendling authored
      information is in an unreachable block, then it's possible that the high/low pc
      values won't be set for the dwarf information. E.g., this function:
      
      void abort(void) __attribute__((__noreturn__));
      void dead_beef(void) __attribute__ ((noreturn));
      
      int *b;
      
      void dead_beef(void) {
        *b=0xdeadbeef;
        abort();
      }
      
      has a call to "@llvm.dbg.region.end" only in the unreachable block:
      
      define void @dead_beef() noreturn nounwind  {
      entry:
      	call void @llvm.dbg.func.start(...)
      	call void @llvm.dbg.stoppoint(...)
      ...
      	call void @abort( ) noreturn nounwind 
      	unreachable
      
      return:		; No predecessors!
      	call void @llvm.dbg.stoppoint(...)
      	call void @llvm.dbg.region.end(...)
      	ret void
      }
      
      The dwarf information emitted is something like:
      
      0x00000084:     TAG_subprogram [5]  
                       AT_name( "dead_beef" )
                       AT_external( 0x01 )
                       AT_prototyped( 0x01 )
                       AT_decl_file( 0x01 )
                       AT_decl_line( 0x08 )
      
      Note that this is *not* the best fix for this problem, but a band-aid for an
      gaping wound. This code needs to be changed when we revamp our debugging
      information.
      
      llvm-svn: 56628
      374d7f2b
  9. Sep 25, 2008
  10. Sep 24, 2008
  11. Sep 23, 2008
  12. Sep 22, 2008
  13. Sep 16, 2008
  14. Sep 13, 2008
    • Dan Gohman's avatar
      Define CallSDNode, an SDNode subclass for use with ISD::CALL. · d3fe174c
      Dan Gohman authored
      Currently it just holds the calling convention and flags
      for isVarArgs and isTailCall.
      
      And it has several utility methods, which eliminate magic
      5+2*i and similar index computations in several places.
      
      CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle
      nodes that are not CSE'd gracefully.
      
      llvm-svn: 56183
      d3fe174c
  15. Sep 12, 2008
  16. Sep 06, 2008
  17. Sep 04, 2008
  18. Aug 31, 2008
  19. Aug 28, 2008
  20. Aug 27, 2008
  21. Aug 26, 2008
  22. Aug 23, 2008
    • Dan Gohman's avatar
      Move the point at which FastISel taps into the SelectionDAGISel · eb0cee91
      Dan Gohman authored
      process up to a higher level. This allows FastISel to leverage
      more of SelectionDAGISel's infastructure, such as updating Machine
      PHI nodes.
      
      Also, implement transitioning from SDISel back to FastISel in
      the middle of a block, so it's now possible to go back and
      forth. This allows FastISel to hand individual CallInsts and other
      complicated things off to SDISel to handle, while handling the rest
      of the block itself.
      
      To help support this, reorganize the SelectionDAG class so that it
      is allocated once and reused throughout a function, instead of
      being completely reallocated for each block.
      
      llvm-svn: 55219
      eb0cee91
  23. Aug 21, 2008
  24. Aug 20, 2008
  25. Jul 29, 2008
  26. Jul 27, 2008
  27. Jul 22, 2008
Loading