Skip to content
  1. Jul 15, 2011
  2. Jul 14, 2011
  3. Jul 13, 2011
  4. 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
  5. Jul 11, 2011
  6. Jul 10, 2011
  7. Jul 09, 2011
    • Chris Lattner's avatar
      Land the long talked about "type system rewrite" patch. This · b1ed91f3
      Chris Lattner authored
      patch brings numerous advantages to LLVM.  One way to look at it
      is through diffstat:
       109 files changed, 3005 insertions(+), 5906 deletions(-)
      
      Removing almost 3K lines of code is a good thing.  Other advantages
      include:
      
      1. Value::getType() is a simple load that can be CSE'd, not a mutating
         union-find operation.
      2. Types a uniqued and never move once created, defining away PATypeHolder.
      3. Structs can be "named" now, and their name is part of the identity that
         uniques them.  This means that the compiler doesn't merge them structurally
         which makes the IR much less confusing.
      4. Now that there is no way to get a cycle in a type graph without a named
         struct type, "upreferences" go away.
      5. Type refinement is completely gone, which should make LTO much MUCH faster
         in some common cases with C++ code.
      6. Types are now generally immutable, so we can use "Type *" instead 
         "const Type *" everywhere.
      
      Downsides of this patch are that it removes some functions from the C API,
      so people using those will have to upgrade to (not yet added) new API.  
      "LLVM 3.0" is the right time to do this.
      
      There are still some cleanups pending after this, this patch is large enough
      as-is.
      
      llvm-svn: 134829
      b1ed91f3
    • Evan Cheng's avatar
      Change createAsmParser to take a MCSubtargetInfo instead of triple, · 91111d27
      Evan Cheng authored
      CPU, and feature string. Parsing some asm directives can change
      subtarget state (e.g. .code 16) and it must be reflected in other
      modules (e.g. MCCodeEmitter). That is, the MCSubtargetInfo instance
      must be shared.
      
      llvm-svn: 134795
      91111d27
    • Jakob Stoklund Olesen's avatar
      Oops, didn't mean to commit that. · 780db902
      Jakob Stoklund Olesen authored
      Spills should be hoisted out of loops, but we don't want to hoist them
      to dominating blocks at the same loop depth. That could cause the spills
      to be executed more often.
      
      llvm-svn: 134782
      780db902
    • Jakob Stoklund Olesen's avatar
      Hoist spills within a basic block. · bf6afec3
      Jakob Stoklund Olesen authored
      Try to move spills as early as possible in their basic block. This can
      help eliminate interferences by shortening the live range being
      spilled.
      
      This fixes PR10221.
      
      llvm-svn: 134776
      bf6afec3
  8. Jul 08, 2011
    • Cameron Zwarich's avatar
      Add an intrinsic and codegen support for fused multiply-accumulate. The intent · f03fa189
      Cameron Zwarich authored
      is to use this for architectures that have a native FMA instruction.
      
      llvm-svn: 134742
      f03fa189
    • Jakob Stoklund Olesen's avatar
      Be more aggressive about following hints. · 4931bbc6
      Jakob Stoklund Olesen authored
      RAGreedy::tryAssign will now evict interference from the preferred
      register even when another register is free.
      
      To support this, add the EvictionCost struct that counts how many hints
      are broken by an eviction. We don't want to break one hint just to
      satisfy another.
      
      Rename canEvict to shouldEvict, and add the first bit of eviction policy
      that doesn't depend on spill weights: Always make room in the preferred
      register as long as the evictees can be split and aren't already
      assigned to their preferred register.
      
      Also make the CSR avoidance more accurate. When looking for a cheaper
      register it is OK to use a new volatile register. Only CSR aliases that
      have never been used before should be avoided.
      
      llvm-svn: 134735
      4931bbc6
Loading