Skip to content
  1. May 14, 2009
    • Jim Grosbach's avatar
      Removing the HasBuiltinSetjmp flag and associated bits. Flagging the presence · 4f915313
      Jim Grosbach authored
      of exception handling builtin sjlj targets in functions turns out not to 
      be necessary. Marking the intrinsic implementation in the .td file as 
      defining all registers is sufficient to get the context saved properly by 
      the containing function.
      
      llvm-svn: 71743
      4f915313
    • Bob Wilson's avatar
      Revert a portion of Dan's change r71018 that I'm convinced is wrong. · 43f21dde
      Bob Wilson authored
      Dan was trying to catch the case where a basic block ends with a conditional
      branch to the fall-through block.  In this case, all the instructions have
      been moved out of FromBBI, leaving it empty.  It cannot end with a
      conditional branch.  As the existing comment indicates, it will always fall
      through to the next block.  If the block already had the next block (NBB)
      listed as a successor, the preceding loop has a check for that and does not
      remove it.  Thus, we need to check and add the successor only when it is
      not already listed.
      
      With Dan's change, the empty block often ends up with the fall-through
      successor listed twice.  This exposed the problem in pr4195, where
      CodePlacementOpt did not handle the same predecessor listed more than once.
      It is also at least partially responsible for pr4202 and probably a similar
      issue with Thumb branches being out of range.
      
      llvm-svn: 71742
      43f21dde
    • Bob Wilson's avatar
      Merge adjacent conditional. · 969bf71c
      Bob Wilson authored
      llvm-svn: 71741
      969bf71c
    • Bob Wilson's avatar
      Remove an unused variable. · 43467d7d
      Bob Wilson authored
      llvm-svn: 71740
      43467d7d
    • Bob Wilson's avatar
      Fix some typos and spelling and grammar, mostly in comments, but also one · 2371f4f7
      Bob Wilson authored
      field name.  No functional changes.
      
      llvm-svn: 71739
      2371f4f7
  2. May 13, 2009
  3. May 12, 2009
  4. May 11, 2009
    • Dale Johannesen's avatar
      Fix PR4188. TailMerging can't tolerate inexact · b5714633
      Dale Johannesen authored
      sucessor info.
      
      llvm-svn: 71478
      b5714633
    • Evan Cheng's avatar
      Apply patch review feedback. · 1988352f
      Evan Cheng authored
      llvm-svn: 71472
      1988352f
    • Evan Cheng's avatar
      Unbreak non-debug build. · 2b1b9218
      Evan Cheng authored
      llvm-svn: 71457
      2b1b9218
    • Evan Cheng's avatar
      Eliminate a compiler warning. · c84bf99f
      Evan Cheng authored
      llvm-svn: 71456
      c84bf99f
    • Dan Gohman's avatar
      When scalarizing a vector BITCAST, check whether the operand has vector · 9521cadf
      Dan Gohman authored
      type, rather than assume that it does. If the operand is not vector, it
      shouldn't be run through ScalarizeVectorOp. This fixes one of the
      testcases in PR3886.
      
      llvm-svn: 71453
      9521cadf
    • John Mosby's avatar
      · dd437d3a
      John Mosby authored
      Shrink wrapping in PEI:
      - reduces _static_ callee saved register spills
        and restores similar to Chow's original algorithm.
      - iterative implementation with simple heuristic
        limits to mitigate compile time impact.
      - handles placing spills/restores for multi-entry,
        multi-exit regions in the Machine CFG without
        splitting edges.
      - passes test-suite in LLCBETA mode.
      
      Added contains() method to ADT/SparseBitVector.
      
      llvm-svn: 71438
      dd437d3a
    • Jay Foad's avatar
      Don't generate redundant casts of constant values when lowering calls to · aa9c0194
      Jay Foad authored
      memcpy, memmove and memset.
      
      llvm-svn: 71427
      aa9c0194
    • Bill Wendling's avatar
      This is a large rewrite of how Dwarf info for inlined functions is handled. · 59b1ca2a
      Bill Wendling authored
      The DwarfWriter expects DbgScopes and DIEs to behave themselves according to
      DwarfWriter's rules. However, inlined functions violate these rules. There are
      two different types of DIEs associated with an inlined function: an abstract
      instance, which has information about the original source code for the function
      being inlined; and concrete instances, which are created for each place the
      function was inlined and point back to the abstract instance.
      
      This patch tries to stay true to this schema. It bypasses how regular DbgScopes
      and DIEs are created and used when necessary. It provides special handling for
      DIEs of abstract and concrete instances.
      
      This doesn't take care of all of the problems with debug info for inlined
      functions, but it's a step in the right direction. For one thing, llvm-gcc
      generates wrong IR (it's missing some llvm.dbg intrinsics at the point where the
      function's inlined) for this example:
      
      #include <stdio.h>
      static __inline__ __attribute__((always_inline))  int bar(int x) { return 4; }
      void foo() {
        long long b = 1;
        int Y = bar(4);
        printf("%d\n", Y);
      }
      
      while clang generates correct IR.
      
      llvm-svn: 71410
      59b1ca2a
  5. May 10, 2009
  6. May 09, 2009
  7. May 08, 2009
Loading