Skip to content
  1. May 01, 2013
  2. Apr 23, 2013
    • Stephen Lin's avatar
      Add some constraints to use of 'returned': · 6c70dc78
      Stephen Lin authored
      1) Disallow 'returned' on parameter that is also 'sret' (no sensible semantics, as far as I can tell).
      2) Conservatively disallow tail calls through 'returned' parameters that also are 'zext' or 'sext' (for consistency with treatment of other zero-extending and sign-extending operations in tail call position detection...can be revised later to handle situations that can be determined to be safe).
      
      This is a new attribute that is not yet used, so there is no impact.
      
      llvm-svn: 180118
      6c70dc78
  3. Apr 20, 2013
  4. Mar 05, 2013
  5. Jan 18, 2013
  6. Jan 08, 2013
    • Chandler Carruth's avatar
      Sink a function that refers to the SelectionDAG into that library in the · a7c44e6e
      Chandler Carruth authored
      one file where it is called as a static function. Nuke the declaration
      and the definition in lib/CodeGen, along with the include of
      SelectionDAG.h from this file.
      
      There is no dependency edge from lib/CodeGen to
      lib/CodeGen/SelectionDAG, so it isn't valid for a routine in lib/CodeGen
      to reference the DAG. There is a dependency from
      lib/CodeGen/SelectionDAG on lib/CodeGen. This breaks one violation of
      this layering.
      
      llvm-svn: 171842
      a7c44e6e
  7. 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
  8. Dec 19, 2012
  9. 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
  10. Oct 15, 2012
  11. Oct 14, 2012
  12. Oct 10, 2012
  13. Oct 09, 2012
  14. Oct 08, 2012
  15. Sep 20, 2012
  16. Jun 01, 2012
  17. Apr 10, 2012
  18. Jan 20, 2012
    • David Blaikie's avatar
      More dead code removal (using -Wunreachable-code) · 46a9f016
      David Blaikie authored
      llvm-svn: 148578
      46a9f016
    • Kostya Serebryany's avatar
      Extend Attributes to 64 bits · a5054ad2
      Kostya Serebryany authored
      Problem: LLVM needs more function attributes than currently available (32 bits).
      One such proposed attribute is "address_safety", which shows that a function is being checked for address safety (by AddressSanitizer, SAFECode, etc).
      
      Solution:
      - extend the Attributes from 32 bits to 64-bits
      - wrap the object into a class so that unsigned is never erroneously used instead
      - change "unsigned" to "Attributes" throughout the code, including one place in clang.
      - the class has no "operator uint64 ()", but it has "uint64_t Raw() " to support packing/unpacking.
      - the class has "safe operator bool()" to support the common idiom:  if (Attributes attr = getAttrs()) useAttrs(attr);
      - The CTOR from uint64_t is marked explicit, so I had to add a few explicit CTOR calls
      - Add the new attribute "address_safety". Doing it in the same commit to check that attributes beyond first 32 bits actually work.
      - Some of the functions from the Attribute namespace are worth moving inside the class, but I'd prefer to have it as a separate commit.
      
      Tested:
      "make check" on Linux (32-bit and 64-bit) and Mac (10.6)
      built/run spec CPU 2006 on Linux with clang -O2.
      
      
      This change will break clang build in lib/CodeGen/CGCall.cpp.
      The following patch will fix it.
      
      llvm-svn: 148553
      a5054ad2
  19. Dec 15, 2011
  20. Dec 02, 2011
    • Nick Lewycky's avatar
      Move global variables in TargetMachine into new TargetOptions class. As an API · 50f02cb2
      Nick Lewycky authored
      change, now you need a TargetOptions object to create a TargetMachine. Clang
      patch to follow.
      
      One small functionality change in PTX. PTX had commented out the machine
      verifier parts in their copy of printAndVerify. That now calls the version in
      LLVMTargetMachine. Users of PTX who need verification disabled should rely on
      not passing the command-line flag to enable it.
      
      llvm-svn: 145714
      50f02cb2
  21. Jul 18, 2011
  22. Mar 19, 2011
  23. Dec 01, 2010
  24. Oct 29, 2010
  25. Oct 06, 2010
  26. Jul 27, 2010
  27. Jul 16, 2010
    • Evan Cheng's avatar
      Split -enable-finite-only-fp-math to two options: · 55f0c6b9
      Evan Cheng authored
      -enable-no-nans-fp-math and -enable-no-infs-fp-math. All of the current codegen fp math optimizations only care whether the fp arithmetics arguments and results can never be NaN.
      
      llvm-svn: 108465
      55f0c6b9
  28. Apr 21, 2010
  29. Apr 20, 2010
  30. Apr 19, 2010
  31. Apr 17, 2010
  32. Apr 16, 2010
    • Gabor Greif's avatar
      reapply r101434 · f375520f
      Gabor Greif authored
      with a fix for self-hosting
      
      rotate CallInst operands, i.e. move callee to the back
      of the operand array
      
      the motivation for this patch are laid out in my mail to llvm-commits:
      more efficient access to operands and callee, faster callgraph-construction,
      smaller compiler binary
      
      llvm-svn: 101465
      f375520f
Loading