Skip to content
  1. Aug 03, 2011
  2. Aug 02, 2011
    • Jakob Stoklund Olesen's avatar
      Extend the SpillPlacement interface with two new features. · d2a7d1ed
      Jakob Stoklund Olesen authored
      The PrefBoth constraint is used for blocks that ideally want a live-in
      value both on the stack and in a register. This would be used by a block
      that has a use before interference forces a spill.
      
      Secondly, add the ChangesValue flag to BlockConstraint. This tells
      SpillPlacement if a live-in value on the stack can be reused as a
      live-out stack value for free. If the block redefines the virtual
      register, a spill would be required for that.
      
      This extra information will be used by SpillPlacement to more accurately
      calculate spill costs when a value can exist both on the stack and in a
      register.
      
      The simplest example is a basic block that reads the virtual register,
      but doesn't change its value. Spilling around such a block requires a
      reload, but no spill in the block.
      
      The spiller already knows this, but the spill placer doesn't. That can
      sometimes lead to suboptimal regions.
      
      llvm-svn: 136731
      d2a7d1ed
    • Eli Friedman's avatar
      Don't create a ridiculous EXTRACT_ELEMENT. PR10563. · 04c5025c
      Eli Friedman authored
      The testcase looks extremely fragile, so I'm adding an assertion which should catch any cases like this.
      
      llvm-svn: 136711
      04c5025c
  3. Aug 01, 2011
  4. Jul 31, 2011
  5. Jul 30, 2011
  6. Jul 29, 2011
    • Jakub Staszak's avatar
      Remove unneeded const_cast. · 539db989
      Jakub Staszak authored
      llvm-svn: 136506
      539db989
    • Nick Lewycky's avatar
      Fix a lot of typos, improve (but not necessarily fix) grammaros and reflow some · 019d255d
      Nick Lewycky authored
      lines. No functionality change.
      
      llvm-svn: 136458
      019d255d
    • Eli Friedman's avatar
      Misc optimizer+codegen work for 'cmpxchg' and 'atomicrmw'. They appear to be · adec587d
      Eli Friedman authored
      working on x86 (at least for trivial testcases); other architectures will
      need more work so that they actually emit the appropriate instructions for
      orderings stricter than 'monotonic'. (As far as I can tell, the ARM, PPC,
      Mips, and Alpha backends need such changes.)
      
      llvm-svn: 136457
      adec587d
    • Bill Wendling's avatar
      Use the pointer type size. · 7eadbeaf
      Bill Wendling authored
      With this, we can now compile a simple EH program.
      
      llvm-svn: 136446
      7eadbeaf
    • Bill Wendling's avatar
      And now something that compiles... · 6a8cac73
      Bill Wendling authored
      llvm-svn: 136445
      6a8cac73
    • Bill Wendling's avatar
      Make sure to sext or trunc the result from the register. · 4b0a365b
      Bill Wendling authored
      llvm-svn: 136444
      4b0a365b
    • Chandler Carruth's avatar
      Rewrite the CMake build to use explicit dependencies between libraries, · 9d7feab3
      Chandler Carruth authored
      specified in the same file that the library itself is created. This is
      more idiomatic for CMake builds, and also allows us to correctly specify
      dependencies that are missed due to bugs in the GenLibDeps perl script,
      or change from compiler to compiler. On Linux, this returns CMake to
      a place where it can relably rebuild several targets of LLVM.
      
      I have tried not to change the dependencies from the ones in the current
      auto-generated file. The only places I've really diverged are in places
      where I was seeing link failures, and added a dependency. The goal of
      this patch is not to start changing the dependencies, merely to move
      them into the correct location, and an explicit form that we can control
      and change when necessary.
      
      This also removes a serialization point in the build because we don't
      have to scan all the libraries before we begin building various tools.
      We no longer have a step of the build that regenerates a file inside the
      source tree. A few other associated cleanups fall out of this.
      
      This isn't really finished yet though. After talking to dgregor he urged
      switching to a single CMake macro to construct libraries with both
      sources and dependencies in the arguments. Migrating from the two macros
      to that style will be a follow-up patch.
      
      Also, llvm-config is still generated with GenLibDeps.pl, which means it
      still has slightly buggy dependencies. The internal CMake
      'llvm-config-like' macro uses the correct explicitly specified
      dependencies however. A future patch will switch llvm-config generation
      (when using CMake) to be based on these deps as well.
      
      This may well break Windows. I'm getting a machine set up now to dig
      into any failures there. If anyone can chime in with problems they see
      or ideas of how to solve them for Windows, much appreciated.
      
      llvm-svn: 136433
      9d7feab3
    • Bill Wendling's avatar
      Visit the landingpad instruction. · 3cc87682
      Bill Wendling authored
      This generates the correct SDNodes for the landingpad instruction. It makes an
      assumption that the result of the landingpad instruction has at least two
      values. And that the first value is a pointer to the exception object and the
      second value is the "selector."
      
      llvm-svn: 136430
      3cc87682
    • Bill Wendling's avatar
      Add the AddLandingPadInfo function. · 7fa7fe6b
      Bill Wendling authored
      AddLandingPadInfo takes a landingpad instruction and grabs all of the
      information from it that it needs for EH table generation.
      
      llvm-svn: 136429
      7fa7fe6b
  7. Jul 28, 2011
  8. Jul 27, 2011
Loading