Skip to content
  1. Mar 17, 2009
  2. Mar 16, 2009
    • Daniel Dunbar's avatar
      raw_ostream: Lift out flush_nonempty. · d24535fe
      Daniel Dunbar authored
       - Flush a known non-empty buffers; enforces the interface to
         flush_impl and kills off HandleFlush (which I saw no reason to be
         an inline method, Chris?).
      
       - Clarify invariant that flush_impl is only called with OutBufCur >
         OutBufStart.
      
       - This also cleary collects all places where we have to deal with the
         buffer possibly not existing.
      
       - A few more comments and fixing the unbuffered behavior remain in
         this commit sequence.
      
      llvm-svn: 67057
      d24535fe
    • Daniel Dunbar's avatar
      Make raw_ostream::operator<<(const void *) fast; it doesn't matter but · 8786218b
      Daniel Dunbar authored
      it is easy.
      
      llvm-svn: 67054
      8786218b
    • Daniel Dunbar's avatar
      Add slow path for single character write, and use exclusively for · 7a9bb9ee
      Daniel Dunbar authored
      single characters writes outside of the fast path in raw_ostream.h
      
      llvm-svn: 67053
      7a9bb9ee
    • Bill Wendling's avatar
      --- Reverse-merging (from foreign repository) r67049 into '.': · dadaf54e
      Bill Wendling authored
      U    test/CodeGen/X86/2009-03-13-PHIElimBug.ll
      D    test/CodeGen/X86/2009-03-16-PHIElimInLPad.ll
      U    lib/CodeGen/PHIElimination.cpp
      
      r67049 was causing this failure:
      
      Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/dg.exp ...
      FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/2009-03-13-PHIElimBug.ll for PR3784
      Failed with exit(1) at line 1
      while running:  llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/2009-03-13-PHIElimBug.ll |  llc -march=x86 | /usr/bin/grep -A 2 {call f} | /usr/bin/grep movl
      child process exited abnormally
      
      llvm-svn: 67051
      dadaf54e
    • Duncan Sands's avatar
      Tweak the fix for PR3784: be less sensitive about just · d3e07c9d
      Duncan Sands authored
      how invokes are set up.  The fix could be disturbed by
      register copies coming after the EH_LABEL, and also didn't
      behave quite right when it was the invoke result that
      was used in a phi node.  Also (see new testcase) fix
      another phi elimination bug while there: register copies
      in the landing pad need to come after the EH_LABEL, because
      that's where execution branches to when unwinding.  If they
      come before the EH_LABEL then they will never be executed...
      Also tweak the original testcase so it doesn't use a no-longer
      existing counter.
      The accumulated phi elimination changes fix two of seven Ada
      testsuite failures that turned up after landing pad critical
      edge splitting was turned off.  So there's probably more to come.
      
      llvm-svn: 67049
      d3e07c9d
    • Scott Michel's avatar
      CellSPU: · d1db1aba
      Scott Michel authored
      Incorporate Tilmann's 128-bit operation patch. Evidently, it gets the
      llvm-gcc bootstrap a bit further along.
      
      llvm-svn: 67048
      d1db1aba
    • Bruno Cardoso Lopes's avatar
      This causes incorrect stack frame allocation when the last object is an array... · aa7db252
      Bruno Cardoso Lopes authored
      This causes incorrect stack frame allocation when the last object is an array allocated on the stack which would lead
      the compiled program to run over its stack. Thanks to Gil Dogon
      
      llvm-svn: 67034
      aa7db252
  3. Mar 15, 2009
  4. Mar 14, 2009
  5. Mar 13, 2009
    • Dale Johannesen's avatar
      Fix -strip-debug-declare to work when there are · a4ac7355
      Dale Johannesen authored
      llvm.global.variable's but no llvm.declare's.
      
      llvm-svn: 66977
      a4ac7355
    • Evan Cheng's avatar
      Fix PR3784: If the source of a phi comes from a bb ended with an invoke, make... · 94419d6f
      Evan Cheng authored
      Fix PR3784: If the source of a phi comes from a bb ended with an invoke, make sure the copy is inserted before the try range (unless it's used as an input to the invoke, then insert it after the last use), not at the end of the bb.
      
      Also re-apply r66140 which was disabled as a workaround.
      
      llvm-svn: 66976
      94419d6f
    • Stuart Hastings's avatar
      Fix a hashing bug in APInt. A certain pathological testcase (too · 7440952c
      Stuart Hastings authored
      large for the testsuite) took over six minutes to compile on my Mac.
      The patched LLVM-GCC compiles that testcase in three seconds (GCC
      takes less than one second).  This hash function is more complex
      (about 35 instructions on x86) than what Chris wanted, but I expect it
      will be well-behaved with arbitrary inputs.
      
      Thank you to everyone who responded to my previous request for advice.
      
      llvm-svn: 66962
      7440952c
    • Bill Wendling's avatar
      Revert r66920. It was causing failures in the self-hosting buildbot (in release · 4bb96e9a
      Bill Wendling authored
      mode).
      
      Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/dg.exp ...
      FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/crash-narrowfunctiontest.ll
      Failed with signal(SIGBUS) at line 1
      while running: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/crash-narrowfunctiontest.ll -bugpoint-crashcalls -silence-passes > /dev/null
      0   bugpoint          0x0035dd25 llvm::sys::SetInterruptFunction(void (*)()) + 85
      1   bugpoint          0x0035e382 llvm::sys::RemoveFileOnSignal(llvm::sys::Path const&, std::string*) + 706
      2   libSystem.B.dylib 0x92f112bb _sigtramp + 43
      3   libSystem.B.dylib 0xffffffff _sigtramp + 1829694831
      4   bugpoint          0x00021d1c main + 92
      5   bugpoint          0x00002106 start + 54
      6   bugpoint          0x00000004 start + 18446744073709543220
      Stack dump:
      0.    Program arguments: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/crash-narrowfunctiontest.ll -bugpoint-crashcalls -silence-passes 
      
      FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/misopt-basictest.ll
      Failed with signal(SIGBUS) at line 1
      while running: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/misopt-basictest.ll -dce -bugpoint-deletecalls -simplifycfg -silence-passes
      0   bugpoint          0x0035dd25 llvm::sys::SetInterruptFunction(void (*)()) + 85
      1   bugpoint          0x0035e382 llvm::sys::RemoveFileOnSignal(llvm::sys::Path const&, std::string*) + 706
      2   libSystem.B.dylib 0x92f112bb _sigtramp + 43
      3   libSystem.B.dylib 0xffffffff _sigtramp + 1829694831
      4   bugpoint          0x00021d1c main + 92
      5   bugpoint          0x00002106 start + 54
      6   bugpoint          0x00000006 start + 18446744073709543222
      Stack dump:
      0.    Program arguments: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/misopt-basictest.ll -dce -bugpoint-deletecalls -simplifycfg -silence-passes 
      
      FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/remove_arguments_test.ll
      Failed with signal(SIGBUS) at line 1
      while running: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/remove_arguments_test.ll  -bugpoint-crashcalls -silence-passes
      0   bugpoint          0x0035dd25 llvm::sys::SetInterruptFunction(void (*)()) + 85
      1   bugpoint          0x0035e382 llvm::sys::RemoveFileOnSignal(llvm::sys::Path const&, std::string*) + 706
      2   libSystem.B.dylib 0x92f112bb _sigtramp + 43
      3   libSystem.B.dylib 0xffffffff _sigtramp + 1829694831
      4   bugpoint          0x00021d1c main + 92
      5   bugpoint          0x00002106 start + 54
      Stack dump:
      0.    Program arguments: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/remove_arguments_test.ll -bugpoint-crashcalls -silence-passes 
      
      --- Reverse-merging (from foreign repository) r66920 into '.':
      U    include/llvm/Support/CallSite.h
      U    include/llvm/Instructions.h
      U    lib/Analysis/IPA/GlobalsModRef.cpp
      U    lib/Analysis/IPA/Andersens.cpp
      U    lib/Bitcode/Writer/BitcodeWriter.cpp
      U    lib/VMCore/Instructions.cpp
      U    lib/VMCore/Verifier.cpp
      U    lib/VMCore/AsmWriter.cpp
      U    lib/Transforms/Utils/LowerInvoke.cpp
      U    lib/Transforms/Scalar/SimplifyCFGPass.cpp
      U    lib/Transforms/IPO/PruneEH.cpp
      U    lib/Transforms/IPO/DeadArgumentElimination.cpp
      
      llvm-svn: 66953
      4bb96e9a
    • Dan Gohman's avatar
      Fix FastISel's assumption that i1 values are always zero-extended · c0bb9595
      Dan Gohman authored
      by inserting explicit zero extensions where necessary. Included
      is a testcase where SelectionDAG produces a virtual register
      holding an i1 value which FastISel previously mistakenly assumed
      to be zero-extended.
      
      llvm-svn: 66941
      c0bb9595
    • Rafael Espindola's avatar
      add 8 and 16 bit TLS moves. · 997b74ac
      Rafael Espindola authored
      add a fixme note on how to remove code duplication.
      
      llvm-svn: 66932
      997b74ac
    • Dale Johannesen's avatar
      One more place where debug info affects codegen. · c6583051
      Dale Johannesen authored
      llvm-svn: 66930
      c6583051
    • Rafael Espindola's avatar
      Improve sext and zext of TLS variables. · 71144973
      Rafael Espindola authored
      llvm-svn: 66922
      71144973
    • Gabor Greif's avatar
      Second installment of "BasicBlock operands to the back" · 258232fb
      Gabor Greif authored
      changes.
      
      For InvokeInst now all arguments begin at op_begin().
      The Callee, Cont and Fail are now faster to get by
      access relative to op_end().
      
      This patch introduces some temporary uglyness in CallSite.
      Next I'll bring CallInst up to a similar scheme and then
      the uglyness will magically vanish.
      
      This patch also exposes all the reliance of the libraries
      on InvokeInst's operand ordering. I am thinking of taking
      care of that too.
      
      llvm-svn: 66920
      258232fb
    • Chris Lattner's avatar
      generalize this code so that fast isel handles integer truncates to i1, which · 3fb71c8f
      Chris Lattner authored
      codegen to the same thing as integer truncates to i8 (the top bits are 
      just undefined).  This implements rdar://6667338
      
      llvm-svn: 66902
      3fb71c8f
    • Bill Wendling's avatar
      These instructions have special lowering that may lower them to SSE · 798fd56d
      Bill Wendling authored
      instructions. Prevent that if we don't want implicit uses of SSE.
      
      llvm-svn: 66877
      798fd56d
    • Evan Cheng's avatar
      Fix some significant problems with constant pools that resulted in unnecessary... · 1fb8aedd
      Evan Cheng authored
      Fix some significant problems with constant pools that resulted in unnecessary paddings between constant pool entries, larger than necessary alignments (e.g. 8 byte alignment for .literal4 sections), and potentially other issues.
      
      1. ConstantPoolSDNode alignment field is log2 value of the alignment requirement. This is not consistent with other SDNode variants.
      2. MachineConstantPool alignment field is also a log2 value.
      3. However, some places are creating ConstantPoolSDNode with alignment value rather than log2 values. This creates entries with artificially large alignments, e.g. 256 for SSE vector values.
      4. Constant pool entry offsets are computed when they are created. However, asm printer group them by sections. That means the offsets are no longer valid. However, asm printer uses them to determine size of padding between entries.
      5. Asm printer uses expensive data structure multimap to track constant pool entries by sections.
      6. Asm printer iterate over SmallPtrSet when it's emitting constant pool entries. This is non-deterministic.
      
      
      Solutions:
      1. ConstantPoolSDNode alignment field is changed to keep non-log2 value.
      2. MachineConstantPool alignment field is also changed to keep non-log2 value.
      3. Functions that create ConstantPool nodes are passing in non-log2 alignments.
      4. MachineConstantPoolEntry no longer keeps an offset field. It's replaced with an alignment field. Offsets are not computed when constant pool entries are created. They are computed on the fly in asm printer and JIT.
      5. Asm printer uses cheaper data structure to group constant pool entries.
      6. Asm printer compute entry offsets after grouping is done.
      7. Change JIT code to compute entry offsets on the fly.
      
      llvm-svn: 66875
      1fb8aedd
    • Owen Anderson's avatar
      Convert VirtRegMap to a MachineFunctionPass. · d37ddf5b
      Owen Anderson authored
      llvm-svn: 66870
      d37ddf5b
Loading