Skip to content
  1. Nov 13, 2009
  2. Nov 12, 2009
    • Bill Wendling's avatar
      Refactor code that checks if it's a call to a "nounwind" function. · e412064c
      Bill Wendling authored
      llvm-svn: 87036
      e412064c
    • Chris Lattner's avatar
      use isInstructionTriviallyDead, as pointed out by Duncan · 5c89f4b4
      Chris Lattner authored
      llvm-svn: 87035
      5c89f4b4
    • David Greene's avatar
      · 033d6558
      David Greene authored
      Do some cleanups suggested by Chris.
      
      llvm-svn: 87034
      033d6558
    • David Greene's avatar
      · 7cf326ae
      David Greene authored
      Set the ReloadReuse AsmPrinter flag where appropriate.
      
      llvm-svn: 87030
      7cf326ae
    • David Greene's avatar
      · be851acf
      David Greene authored
      Make the MachineFunction argument of getFrameRegister const.
      
      This also fixes a build error.
      
      llvm-svn: 87027
      be851acf
    • David Greene's avatar
      · 70fdd57d
      David Greene authored
      Add hasLoadFromStackSlot and hasStoreToStackSlot to return whether a
      machine instruction loads or stores from/to a stack slot.  Unlike
      isLoadFromStackSlot and isStoreFromStackSlot, the instruction may be
      something other than a pure load/store (e.g. it may be an arithmetic
      operation with a memory operand).  This helps AsmPrinter determine when
      to print a spill/reload comment.
      
      This is only a hint since we may not be able to figure this out in all
      cases.  As such, it should not be relied upon for correctness.
      
      Implement for X86.  Return false by default for other architectures.
      
      llvm-svn: 87026
      70fdd57d
    • Daniel Dunbar's avatar
      Fix -Asserts warning. · 5026bc3a
      Daniel Dunbar authored
      llvm-svn: 87024
      5026bc3a
    • Bill Wendling's avatar
      If there's more than one function operand to a call instruction, be conservative · e3ae25b3
      Bill Wendling authored
      and don't assume that the call doesn't throw. It would be nice if there were a
      way to determine which is the callee and which is a parameter. In practice, the
      architecture we care about normally only have one operand for a call instruction
      (x86 and arm).
      
      llvm-svn: 87023
      e3ae25b3
    • David Greene's avatar
      · 1fbe0544
      David Greene authored
      Add a bool flag to StackObjects telling whether they reference spill
      slots.  The AsmPrinter will use this information to determine whether to
      print a spill/reload comment.
      
      Remove default argument values.  It's too easy to pass a wrong argument
      value when multiple arguments have default values.  Make everything
      explicit to trap bugs early.
      
      Update all targets to adhere to the new interfaces..
      
      llvm-svn: 87022
      1fbe0544
    • Benjamin Kramer's avatar
      Add compare_lower and equals_lower methods to StringRef. Switch all users of · 68e4945c
      Benjamin Kramer authored
      StringsEqualNoCase (from StringExtras.h) to it.
      
      llvm-svn: 87020
      68e4945c
    • David Greene's avatar
      · 81eb42d8
      David Greene authored
      Make FixedStackPseudoSourceValue a first-class PseudoSourceValue by
      making it visible to clients and adding LLVM-style cast capability.
      This will be used by AsmPrinter to determine when to emit spill comments
      for an instruction.
      
      llvm-svn: 87019
      81eb42d8
    • David Goodwin's avatar
    • Devang Patel's avatar
      "Attach debug info with llvm instructions" mode was enabled a month ago. Now... · 2904aa9f
      Devang Patel authored
      "Attach debug info with llvm instructions" mode was enabled a month ago. Now make it permanent and remove old way of inserting intrinsics to encode debug info for line number and scopes.
      
      llvm-svn: 87014
      2904aa9f
    • Jim Grosbach's avatar
      Update TB[BH] layout optimization. Add support for moving the target block · 5d57714e
      Jim Grosbach authored
      to directly follow the jump table. Move the layout changes to prior to any
      constant island handling.
      
      llvm-svn: 86999
      5d57714e
    • Nuno Lopes's avatar
      fix crash in my previous patch · f8fcac74
      Nuno Lopes authored
      llvm-svn: 86987
      f8fcac74
    • Nuno Lopes's avatar
    • Chris Lattner's avatar
      implement a nice little efficiency hack in the inliner. Since we're now · eb9acbfb
      Chris Lattner authored
      running IPSCCP early, and we run functionattrs interlaced with the inliner,
      we often (particularly for small or noop functions) completely propagate
      all of the information about a call to its call site in IPSSCP (making a call
      dead) and functionattrs is smart enough to realize that the function is
      readonly (because it is interlaced with inliner).
      
      To improve compile time and make the inliner threshold more accurate, realize
      that we don't have to inline dead readonly function calls.  Instead, just 
      delete the call.  This happens all the time for C++ codes, here are some
      counters from opt/llvm-ld counting the number of times calls were deleted vs
      inlined on various apps:
      
      Tramp3d opt:
        5033 inline                - Number of call sites deleted, not inlined
       24596 inline                - Number of functions inlined
      llvm-ld:
        667 inline           - Number of functions deleted because all callers found
        699 inline           - Number of functions inlined
      
      483.xalancbmk opt:
        8096 inline                - Number of call sites deleted, not inlined
       62528 inline                - Number of functions inlined
      llvm-ld:
         217 inline           - Number of allocas merged together
        2158 inline           - Number of functions inlined
      
      471.omnetpp:
        331 inline                - Number of call sites deleted, not inlined
       8981 inline                - Number of functions inlined
      llvm-ld:
        171 inline           - Number of functions deleted because all callers found
        629 inline           - Number of functions inlined
      
      
      Deleting a call is much faster than inlining it, and is insensitive to the
      size of the callee. :)
      
      llvm-svn: 86975
      eb9acbfb
    • Evan Cheng's avatar
      RegScavenger::enterBasicBlock should always reset register state. · 5d85a46f
      Evan Cheng authored
      llvm-svn: 86972
      5d85a46f
    • Evan Cheng's avatar
      - Teach LSR to avoid changing cmp iv stride if it will create an immediate that · 85a9f430
      Evan Cheng authored
        cannot be folded into target cmp instruction.
      - Avoid a phase ordering issue where early cmp optimization would prevent the
        later count-to-zero optimization.
      - Add missing checks which could cause LSR to reuse stride that does not have
        users.
      - Fix a bug in count-to-zero optimization code which failed to find the pre-inc
        iv's phi node.
      - Remove, tighten, loosen some incorrect checks disable valid transformations.
      - Quite a bit of code clean up.
      
      llvm-svn: 86969
      85a9f430
Loading