Skip to content
  1. Nov 23, 2008
  2. Nov 21, 2008
    • Scott Michel's avatar
      CellSPU: · c6918c1f
      Scott Michel authored
      (a) Fix bgs 3052, 3057
      (b) Incorporate Duncan's suggestions re: i1 promotion
      (c) Indentation updates.
      
      llvm-svn: 59790
      c6918c1f
  3. Nov 20, 2008
    • Scott Michel's avatar
      CellSPU: · 3726019a
      Scott Michel authored
      (a) Remove moved file (SPUAsmPrinter.cpp) to make svn happy.
      (b) Remove truncated stores that will never be used.
      (c) Add initial support for __muldi3 as a libcall.
      
      llvm-svn: 59734
      3726019a
    • Scott Michel's avatar
      CellSPU: Custom lower truncating stores of i8 to i1 (should not have been · a7521ee3
      Scott Michel authored
      promote), fix signed conversion of indexed offsets.
      
      llvm-svn: 59707
      a7521ee3
    • Scott Michel's avatar
      CellSPU: Adjust spacing/tabulation · e361f08a
      Scott Michel authored
      llvm-svn: 59703
      e361f08a
    • Dan Gohman's avatar
      Experimental post-pass scheduling support. Post-pass scheduling · 60cb69e6
      Dan Gohman authored
      is currently off by default, and can be enabled with
      -disable-post-RA-scheduler=false.
      
      This doesn't have a significant impact on most code yet because it doesn't
      yet do anything to address anti-dependencies and it doesn't attempt to
      disambiguate memory references. Also, several popular targets
      don't have pipeline descriptions yet.
      
      The majority of the changes here are splitting the SelectionDAG-specific
      code out of ScheduleDAG, so that ScheduleDAG can be moved to
      libLLVMCodeGen.a. The interface between ScheduleDAG-using code and
      the rest of the scheduling code is somewhat rough and will evolve.
      
      llvm-svn: 59676
      60cb69e6
  4. Nov 19, 2008
  5. Nov 18, 2008
  6. Nov 15, 2008
  7. Nov 11, 2008
  8. Nov 08, 2008
  9. Nov 07, 2008
  10. Nov 05, 2008
    • Dan Gohman's avatar
      Eliminate the ISel priority queue, which used the topological order for a · f14b77eb
      Dan Gohman authored
      priority function. Instead, just iterate over the AllNodes list, which is
      already in topological order. This eliminates a fair amount of bookkeeping,
      and speeds up the isel phase by about 15% on many testcases.
      
      The impact on most targets is that AddToISelQueue calls can be simply removed.
      
      In the x86 target, there are two additional notable changes.
      
      The rule-bending AND+SHIFT optimization in MatchAddress that creates new
      pre-isel nodes during isel is now a little more verbose, but more robust.
      Instead of either creating an invalid DAG or creating an invalid topological
      sort, as it has historically done, it can now just insert the new nodes into
      the node list at a position where they will be consistent with the topological
      ordering.
      
      Also, the address-matching code has logic that checked to see if a node was
      "already selected". However, when a node is selected, it has all its uses
      taken away via ReplaceAllUsesWith or equivalent, so it won't recieve any
      further visits from MatchAddress. This code is now removed.
      
      llvm-svn: 58748
      f14b77eb
    • Dan Gohman's avatar
      Use getTargetConstant instead of getConstant for nodes that should not be visited · fd820528
      Dan Gohman authored
      by isel and potentially forced into registers.
      
      llvm-svn: 58747
      fd820528
  11. Nov 03, 2008
  12. Oct 30, 2008
  13. Oct 27, 2008
    • David Greene's avatar
      · ce2a9381
      David Greene authored
      Have TableGen emit setSubgraphColor calls under control of a -gen-debug
      flag.  Then in a debugger developers can set breakpoints at these calls
      to see waht is about to be selected and what the resulting subgraph
      looks like.  This really helps when debugging instruction selection.
      
      llvm-svn: 58278
      ce2a9381
  14. 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
  15. Oct 16, 2008
  16. Oct 14, 2008
  17. Oct 12, 2008
  18. 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
  19. Oct 03, 2008
  20. 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
  21. 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
  22. Sep 25, 2008
Loading