Skip to content
  1. May 03, 2012
  2. May 01, 2012
  3. Apr 25, 2012
  4. Apr 24, 2012
  5. Apr 04, 2012
    • Rafael Espindola's avatar
      Always compute all the bits in ComputeMaskedBits. · ba0a6cab
      Rafael Espindola authored
      This allows us to keep passing reduced masks to SimplifyDemandedBits, but
      know about all the bits if SimplifyDemandedBits fails. This allows instcombine
      to simplify cases like the one in the included testcase.
      
      llvm-svn: 154011
      ba0a6cab
  6. Feb 06, 2012
  7. Feb 03, 2012
  8. Feb 01, 2012
    • Jim Grosbach's avatar
      Disable InstCombine unsafe folding bitcasts of calls w/ varargs. · 9fa04815
      Jim Grosbach authored
      Changing arguments from being passed as fixed to varargs is unsafe, as
      the ABI may require they be handled differently (stack vs. register, for
      example).
      
      Remove two tests which rely on the bitcast being folded into the direct
      call, which is exactly the transformation that's unsafe.
      
      llvm-svn: 149457
      9fa04815
  9. Jan 27, 2012
  10. Jan 20, 2012
    • 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
  11. Dec 05, 2011
    • Nadav Rotem's avatar
      · 3924cb02
      Nadav Rotem authored
      Add support for vectors of pointers.
      
      llvm-svn: 145801
      3924cb02
  12. Nov 29, 2011
  13. Nov 20, 2011
  14. Sep 27, 2011
  15. Sep 06, 2011
    • Duncan Sands's avatar
      Split the init.trampoline intrinsic, which currently combines GCC's · a098436b
      Duncan Sands authored
      init.trampoline and adjust.trampoline intrinsics, into two intrinsics
      like in GCC.  While having one combined intrinsic is tempting, it is
      not natural because typically the trampoline initialization needs to
      be done in one function, and the result of adjust trampoline is needed
      in a different (nested) function.  To get around this llvm-gcc hacks the
      nested function lowering code to insert an additional parent variable
      holding the adjust.trampoline result that can be accessed from the child
      function.  Dragonegg doesn't have the luxury of tweaking GCC code, so it
      stored the result of adjust.trampoline in the memory GCC set aside for
      the trampoline itself (this is always available in the child function),
      and set up some new memory (using an alloca) to hold the trampoline.
      Unfortunately this breaks Go which allocates trampoline memory on the
      heap and wants to use it even after the parent has exited (!).  Rather
      than doing even more hacks to get Go working, it seemed best to just use
      two intrinsics like in GCC.  Patch mostly by Sanjoy Das.
      
      llvm-svn: 139140
      a098436b
  16. Aug 25, 2011
  17. Jul 31, 2011
    • Bill Wendling's avatar
      Add the 'resume' instruction for the new EH rewrite. · f891bf8b
      Bill Wendling authored
      This adds the 'resume' instruction class, IR parsing, and bitcode reading and
      writing. The 'resume' instruction resumes propagation of an existing (in-flight)
      exception whose unwinding was interrupted with a 'landingpad' instruction (to be
      added later).
      
      llvm-svn: 136589
      f891bf8b
  18. Jul 30, 2011
  19. Jul 27, 2011
  20. Jul 19, 2011
  21. Jul 18, 2011
  22. Jul 15, 2011
  23. Jul 14, 2011
  24. Jul 12, 2011
    • Jay Foad's avatar
      Second attempt at de-constifying LLVM Types in FunctionType::get(), · b804a2b7
      Jay Foad authored
      StructType::get() and TargetData::getIntPtrType().
      
      llvm-svn: 134982
      b804a2b7
    • Bill Wendling's avatar
      Revert r134893 and r134888 (and related patches in other trees). It was causing · a78cd228
      Bill Wendling authored
      an assert on Darwin llvm-gcc builds.
      
      Assertion failed: (castIsValid(op, S, Ty) && "Invalid cast!"), function Create, file /Users/buildslave/zorg/buildbot/smooshlab/slave-0.8/build.llvm-gcc-i386-darwin9-RA/llvm.src/lib/VMCore/Instructions.cpp, li\
      ne 2067.
      etc.
      
      http://smooshlab.apple.com:8013/builders/llvm-gcc-i386-darwin9-RA/builds/2354
      
      --- Reverse-merging r134893 into '.':
      U    include/llvm/Target/TargetData.h
      U    include/llvm/DerivedTypes.h
      U    tools/bugpoint/ExtractFunction.cpp
      U    unittests/Support/TypeBuilderTest.cpp
      U    lib/Target/ARM/ARMGlobalMerge.cpp
      U    lib/Target/TargetData.cpp
      U    lib/VMCore/Constants.cpp
      U    lib/VMCore/Type.cpp
      U    lib/VMCore/Core.cpp
      U    lib/Transforms/Utils/CodeExtractor.cpp
      U    lib/Transforms/Instrumentation/ProfilingUtils.cpp
      U    lib/Transforms/IPO/DeadArgumentElimination.cpp
      U    lib/CodeGen/SjLjEHPrepare.cpp
      --- Reverse-merging r134888 into '.':
      G    include/llvm/DerivedTypes.h
      U    include/llvm/Support/TypeBuilder.h
      U    include/llvm/Intrinsics.h
      U    unittests/Analysis/ScalarEvolutionTest.cpp
      U    unittests/ExecutionEngine/JIT/JITTest.cpp
      U    unittests/ExecutionEngine/JIT/JITMemoryManagerTest.cpp
      U    unittests/VMCore/PassManagerTest.cpp
      G    unittests/Support/TypeBuilderTest.cpp
      U    lib/Target/MBlaze/MBlazeIntrinsicInfo.cpp
      U    lib/Target/Blackfin/BlackfinIntrinsicInfo.cpp
      U    lib/VMCore/IRBuilder.cpp
      G    lib/VMCore/Type.cpp
      U    lib/VMCore/Function.cpp
      G    lib/VMCore/Core.cpp
      U    lib/VMCore/Module.cpp
      U    lib/AsmParser/LLParser.cpp
      U    lib/Transforms/Utils/CloneFunction.cpp
      G    lib/Transforms/Utils/CodeExtractor.cpp
      U    lib/Transforms/Utils/InlineFunction.cpp
      U    lib/Transforms/Instrumentation/GCOVProfiling.cpp
      U    lib/Transforms/Scalar/ObjCARC.cpp
      U    lib/Transforms/Scalar/SimplifyLibCalls.cpp
      U    lib/Transforms/Scalar/MemCpyOptimizer.cpp
      G    lib/Transforms/IPO/DeadArgumentElimination.cpp
      U    lib/Transforms/IPO/ArgumentPromotion.cpp
      U    lib/Transforms/InstCombine/InstCombineCompares.cpp
      U    lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
      U    lib/Transforms/InstCombine/InstCombineCalls.cpp
      U    lib/CodeGen/DwarfEHPrepare.cpp
      U    lib/CodeGen/IntrinsicLowering.cpp
      U    lib/Bitcode/Reader/BitcodeReader.cpp
      
      llvm-svn: 134949
      a78cd228
  25. Jul 11, 2011
  26. Jul 01, 2011
  27. Jun 20, 2011
    • Chris Lattner's avatar
      Revamp the "ConstantStruct::get" methods. Previously, these were scattered · cc19efaa
      Chris Lattner authored
      all over the place in different styles and variants.  Standardize on two
      preferred entrypoints: one that takes a StructType and ArrayRef, and one that
      takes StructType and varargs.
      
      In cases where there isn't a struct type convenient, we now add a
      ConstantStruct::getAnon method (whose name will make more sense after a few
      more patches land).  
      
      It would be "really really nice" if the ConstantStruct::get and 
      ConstantVector::get methods didn't make temporary std::vectors.
      
      llvm-svn: 133412
      cc19efaa
  28. May 27, 2011
  29. May 21, 2011
  30. May 19, 2011
  31. May 18, 2011
Loading