Skip to content
  1. Aug 04, 2013
    • Tim Northover's avatar
      X86: correct tail return address calculation · ecc018c7
      Tim Northover authored
      Due to the weird and wondeful usual arithmetic conversions, some
      calculations involving negative values were getting performed in
      uint32_t and then promoted to int64_t, which is really not a good
      idea.
      
      Patch by Katsuhiro Ueno.
      
      llvm-svn: 187703
      ecc018c7
  2. Jul 08, 2013
  3. Jul 07, 2013
  4. Jun 18, 2013
  5. May 16, 2013
  6. May 11, 2013
  7. May 09, 2013
    • Bill Wendling's avatar
      Generate a compact unwind encoding in the face of a stack alignment push. · 07fe235e
      Bill Wendling authored
      We generate a `push' of a random register (%rax) if the stack needs to be
      aligned by the size of that register. However, this could mess up compact unwind
      generation. In particular, we want to still generate compact unwind in the
      presence of this monstrosity.
      
      Check if the push of of the %rax/%eax register. If it is and it's marked with
      the `FrameSetup' flag, then we can generate a compact unwind encoding for the
      function only if the push is the last FrameSetup instruction.
      
      llvm-svn: 181540
      07fe235e
    • Bill Wendling's avatar
      Simplify the code a bit. · 98d5c52d
      Bill Wendling authored
      The compact unwind registers were defined in two different
      places. It's better just to place them in the function that uses them
      and specify that this is a 64-bit or 32-bit machine.
      
      No functionality change.
      
      llvm-svn: 181529
      98d5c52d
  8. Apr 19, 2013
  9. Feb 28, 2013
  10. Feb 21, 2013
    • Eli Bendersky's avatar
      Move the eliminateCallFramePseudoInstr method from TargetRegisterInfo · 8da87163
      Eli Bendersky authored
      to TargetFrameLowering, where it belongs. Incidentally, this allows us
      to delete some duplicated (and slightly different!) code in TRI.
      
      There are potentially other layering problems that can be cleaned up
      as a result, or in a similar manner.
      
      The refactoring was OK'd by Anton Korobeynikov on llvmdev.
      
      Note: this touches the target interfaces, so out-of-tree targets may
      be affected.
      
      llvm-svn: 175788
      8da87163
  11. Feb 19, 2013
  12. Feb 18, 2013
  13. Feb 16, 2013
  14. Feb 06, 2013
    • Eli Bendersky's avatar
      This is a follow-up on r174446, now taking Atom processors into · ef4558ab
      Eli Bendersky authored
      account. Atoms use LEA for updating SP in prologs/epilogs, and the
      exact LEA opcode depends on the data model.
      
      Also reapplying the test case which was added and then reverted
      (because of Atom failures), this time specifying explicitly the CPU in
      addition to the triple. The test case now checks all variations (data
      mode, cpu Atom vs. Core).
      
      llvm-svn: 174542
      ef4558ab
  15. Feb 05, 2013
  16. Jan 02, 2013
    • Chandler Carruth's avatar
      Move all of the header files which are involved in modelling the LLVM IR · 9fb823bb
      Chandler Carruth authored
      into their new header subdirectory: include/llvm/IR. This matches the
      directory structure of lib, and begins to correct a long standing point
      of file layout clutter in LLVM.
      
      There are still more header files to move here, but I wanted to handle
      them in separate commits to make tracking what files make sense at each
      layer easier.
      
      The only really questionable files here are the target intrinsic
      tablegen files. But that's a battle I'd rather not fight today.
      
      I've updated both CMake and Makefile build systems (I think, and my
      tests think, but I may have missed something).
      
      I've also re-sorted the includes throughout the project. I'll be
      committing updates to Clang, DragonEgg, and Polly momentarily.
      
      llvm-svn: 171366
      9fb823bb
  17. Dec 30, 2012
  18. Dec 23, 2012
  19. Dec 22, 2012
    • Nadav Rotem's avatar
      In some cases, due to scheduling constraints we copy the EFLAGS. · d5aae980
      Nadav Rotem authored
      The only way to read the eflags is using push and pop. If we don't
      adjust the stack then we run over the first frame index. This is
      not something that we want to do, so we have to make sure that
      our machine function does not copy the flags. If it does then
      we have to emit the prolog that adjusts the stack.
      
      rdar://12896831
      
      llvm-svn: 170961
      d5aae980
  20. Dec 20, 2012
  21. Dec 19, 2012
  22. Dec 03, 2012
    • Chandler Carruth's avatar
      Use the new script to sort the includes of every file under lib. · ed0881b2
      Chandler Carruth authored
      Sooooo many of these had incorrect or strange main module includes.
      I have manually inspected all of these, and fixed the main module
      include to be the nearest plausible thing I could find. If you own or
      care about any of these source files, I encourage you to take some time
      and check that these edits were sensible. I can't have broken anything
      (I strictly added headers, and reordered them, never removed), but they
      may not be the headers you'd really like to identify as containing the
      API being implemented.
      
      Many forward declarations and missing includes were added to a header
      files to allow them to parse cleanly when included first. The main
      module rule does in fact have its merits. =]
      
      llvm-svn: 169131
      ed0881b2
  23. Oct 25, 2012
  24. Oct 15, 2012
  25. Oct 11, 2012
  26. Oct 09, 2012
  27. Oct 08, 2012
  28. Oct 04, 2012
  29. Oct 03, 2012
  30. Oct 02, 2012
Loading