Skip to content
  1. Mar 14, 2009
  2. 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
    • Ted Kremenek's avatar
      Add (hidden) TableGen command option '-clang-component' which specifies the · 9750429e
      Ted Kremenek authored
      component's warnings to process for '-gen-clang-diags-defs'.
      
      Also, when the component is specified, generate a '#if' prologue at the top of
      the generated .def file (to match the current files).
      
      llvm-svn: 66975
      9750429e
    • Ted Kremenek's avatar
      Add initial implementation of a TableGen backend for converting Clang-warnings · dee11569
      Ted Kremenek authored
      tablegen files to the original .def preprocessor include files. This is my first
      TableGen backend; I don't claim that it is awesome.
      
      llvm-svn: 66971
      dee11569
    • Ted Kremenek's avatar
      Further constify Record::isSubClassOf. · 58e32877
      Ted Kremenek authored
      llvm-svn: 66970
      58e32877
    • Devang Patel's avatar
    • 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
    • Chris Lattner's avatar
      Fix escaping in asm string literals correctly by having tblgen unescape · 8bd06d8e
      Chris Lattner authored
      them, then the asmprinter emitter reescape them.
      
      llvm-svn: 66958
      8bd06d8e
    • Chris Lattner's avatar
      add a horrible hack to fix the build. · a614ef20
      Chris Lattner authored
      llvm-svn: 66957
      a614ef20
    • 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
    • Chris Lattner's avatar
      add support for a few simple escape characters in tblgen strings. · 1bd36743
      Chris Lattner authored
      llvm-svn: 66949
      1bd36743
    • Daniel Dunbar's avatar
      Add ENABLE_COVERAGE, for building a +Coverage (gcov) configuration. · 5b86bf52
      Daniel Dunbar authored
       - Required some extra makefile tweaks to introduce a new flag var
         which only goes to compile/link tools but not the relink step,
         otherwise we get a copy of libgcov in the relinked .o files.
      
       - No configure magic for this.
      
      llvm-svn: 66945
      5b86bf52
    • 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
    • Chris Lattner's avatar
      remove a test that depends on -debug. · 2150eb9f
      Chris Lattner authored
      llvm-svn: 66937
      2150eb9f
    • Chris Lattner's avatar
      remove a testcase that depends on -debug existing. · 033a654d
      Chris Lattner authored
      llvm-svn: 66936
      033a654d
    • 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
    • Devang Patel's avatar
      Test case for rev. 66925 · a01646ef
      Devang Patel authored
      llvm-svn: 66927
      a01646ef
    • 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
      remove a buggy test, it is not ok to use -debug in RUN line. · a18c768e
      Chris Lattner authored
      llvm-svn: 66918
      a18c768e
    • 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
    • Chris Lattner's avatar
      add a new TGError class and use it to propagate location info with · ba42e49c
      Chris Lattner authored
      errors when thrown.  This gets us nice errors like this from tblgen:
      
      CMOVL32rr: 	(set GR32:i32:$dst, (X86cmov GR32:$src1, GR32:$src2))
      /Users/sabre/llvm/Debug/bin/tblgen: error:
      Included from X86.td:116:
      Parsing X86InstrInfo.td:922: In CMOVL32rr: X86cmov node requires exactly 4 operands!
      def CMOVL32rr : I<0x4C, MRMSrcReg,       // if <s, GR32 = GR32
      ^
      
      instead of just:
      
      CMOVL32rr: 	(set GR32:i32:$dst, (X86cmov GR32:$src1, GR32:$src2))
      /Users/sabre/llvm/Debug/bin/tblgen: In CMOVL32rr: X86cmov node requires exactly 4 operands!
      
      This is all I plan to do with this, but it should be easy enough to improve if anyone 
      cares (e.g. keeping more loc info in "dag" expr records in tblgen.
      
      llvm-svn: 66898
      ba42e49c
    • Chris Lattner's avatar
      give each Record a location. · bd9b9210
      Chris Lattner authored
      llvm-svn: 66897
      bd9b9210
    • Chris Lattner's avatar
      make "locations" a class instead of a typedef. · 87710ca5
      Chris Lattner authored
      llvm-svn: 66895
      87710ca5
    • Duncan Sands's avatar
      Update these for the 2.5 release. · 0c9742c3
      Duncan Sands authored
      llvm-svn: 66890
      0c9742c3
    • 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
    • Argyrios Kyrtzidis's avatar
      Unbreak build, bring in std::string for GCC 4.3 · afc74e23
      Argyrios Kyrtzidis authored
      llvm-svn: 66876
      afc74e23
    • 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
    • Evan Cheng's avatar
      Unbreak build. · bd561627
      Evan Cheng authored
      llvm-svn: 66874
      bd561627
    • Chris Lattner's avatar
      split buffer management and diagnostic printing out of the tblgen · 8db9bc7e
      Chris Lattner authored
      lexer into its own TGSourceMgr class.
      
      llvm-svn: 66873
      8db9bc7e
    • Owen Anderson's avatar
      Convert VirtRegMap to a MachineFunctionPass. · d37ddf5b
      Owen Anderson authored
      llvm-svn: 66870
      d37ddf5b
    • Chris Lattner's avatar
      generalize the previous code to use the full generality of LEA · 99cc1337
      Chris Lattner authored
      for i32/i64 expressions (we could also do i16 on cpus where
      i16 lea is fast, but I didn't add this).  On the example, we now
      generate:
      
      _test:
      	movl	4(%esp), %eax
      	cmpl	$42, (%eax)
      	setl	%al
      	movzbl	%al, %eax
      	leal	4(%eax,%eax,8), %eax
      	ret
      
      instead of:
      
      _test:
      	movl	4(%esp), %eax
      	cmpl	$41, (%eax)
      	movl	$4, %ecx
      	movl	$13, %eax
      	cmovg	%ecx, %eax
      	ret
      
      llvm-svn: 66869
      99cc1337
    • Chris Lattner's avatar
      optimize the case of cond ? 42 : 41 and friends. This compiles the · 4be6df5d
      Chris Lattner authored
      example to:
      
      _test:
      	movl	4(%esp), %eax
      	cmpl	$41, (%eax)
      	setg	%al
      	movzbl	%al, %eax
      	orl	$4294967294, %eax
      	ret
      
      instead of:
      
              movl    4(%esp), %eax
              cmpl    $41, (%eax)
      	movl	$4294967294, %ecx
      	movl	$4294967295, %eax
      	cmova	%ecx, %eax
      	ret
      
      which is smaller in code size and faster. rdar://6668608
      
      llvm-svn: 66868
      4be6df5d
    • Bill Wendling's avatar
      Oops...I committed too much. · fa54bc20
      Bill Wendling authored
      llvm-svn: 66867
      fa54bc20
    • Bill Wendling's avatar
      Temporarily XFAIL this test. · b02eadf6
      Bill Wendling authored
      llvm-svn: 66866
      b02eadf6
    • Dan Gohman's avatar
      Enhance address-mode folding of ISD::ADD to handle cases where the · a1d92423
      Dan Gohman authored
      operands can't both be fully folded at the same time. For example,
      in the included testcase, a global variable is being added with
      an add of two values. The global variable wants RIP-relative
      addressing, so it can't share the address with another base
      register, but it's still possible to fold the initial add.
      
      llvm-svn: 66865
      a1d92423
Loading