Skip to content
  1. Dec 09, 2012
  2. Dec 08, 2012
    • Craig Topper's avatar
      Teach DAG combine to handle vector logical operations with vectors of all 1s... · a183ddb0
      Craig Topper authored
      Teach DAG combine to handle vector logical operations with vectors of all 1s or all 0s. These cases can show up when vectors are split for legalizing. Fix some tests that were dependent on these cases not being combined.
      
      llvm-svn: 169684
      a183ddb0
    • Chandler Carruth's avatar
      Revert the patches adding a popcount loop idiom recognition pass. · 91e47532
      Chandler Carruth authored
      There are still bugs in this pass, as well as other issues that are
      being worked on, but the bugs are crashers that occur pretty easily in
      the wild. Test cases have been sent to the original commit's review
      thread.
      
      This reverts the commits:
        r169671: Fix a logic error.
        r169604: Move the popcnt tests to an X86 subdirectory.
        r168931: Initial commit adding the pass.
      
      llvm-svn: 169683
      91e47532
    • Benjamin Kramer's avatar
      Escape % in the TextDiagnosticBuffer so they aren't interpreted twice when fed... · 2fec65d3
      Benjamin Kramer authored
      Escape % in the TextDiagnosticBuffer so they aren't interpreted twice when fed into the diagnostic formatting machinery again.
      
      Fixes PR14543.
      
      llvm-svn: 169677
      2fec65d3
    • Benjamin Kramer's avatar
      Simplify code. Sort includes. No functionality change. · f242d8c3
      Benjamin Kramer authored
      llvm-svn: 169676
      f242d8c3
    • David Chisnall's avatar
      long double should be 64 bits on FreeBSD/MIPS64. It possibly should be on · a87d8599
      David Chisnall authored
      Linux too, as I think we inherited it from there.  The ABI spec says 128-bit,
      although I think SGI's compiler on IRIX may be the only thing ever to support
      this.
      
      llvm-svn: 169674
      a87d8599
    • Richard Smith's avatar
      Finish implementing 'selected constructor' rules for triviality in C++11. In · 6b02d46d
      Richard Smith authored
      the cases where we can't determine whether special members would be trivial
      while building the class, we eagerly declare those special members. The impact
      of this is bounded, since it does not trigger implicit declarations of special
      members in classes which merely *use* those classes.
      
      In order to determine whether we need to apply this rule, we also need to
      eagerly declare move operations and destructors in cases where they might be
      deleted. If a move operation were supposed to be deleted, it would instead
      be suppressed, and we could need overload resolution to determine if we fall
      back to a trivial copy operation. If a destructor were implicitly deleted,
      it would cause the move constructor of any derived classes to be suppressed.
      
      As discussed on cxx-abi-dev, C++11's selected constructor rules are also
      retroactively applied as a defect resolution in C++03 mode, in order to
      identify that class B has a non-trivial copy constructor (since it calls
      A's constructor template, not A's copy constructor):
      
      struct A { template<typename T> A(T &); };
      struct B { mutable A a; };
      
      llvm-svn: 169673
      6b02d46d
    • Logan Chien's avatar
      Fix Windows build breakage. · 6ebca4be
      Logan Chien authored
      Windows does not have <stdint.h>, should include
      "llvm/Support/DataTypes.h" instead.
      
      llvm-svn: 169672
      6ebca4be
    • Shuxin Yang's avatar
      Fix an inadvertent typo error. · 9c5c9764
      Shuxin Yang authored
      llvm-svn: 169671
      9c5c9764
    • Richard Smith's avatar
      Remove some remnants of the assumption that there is at most one of each · 1a2532b3
      Richard Smith authored
      flavour of special member.
      
      llvm-svn: 169670
      1a2532b3
    • DeLesley Hutchins's avatar
      0cfa1a5a
    • Chandler Carruth's avatar
      Fix a use-after-free bug found by ASan. You can't assign a temporary · 1d94e932
      Chandler Carruth authored
      std::string to a StringRef. Moreover, the method being called accepts
      a Twine to simplify these patterns.
      
      Fixes this ASan failure:
      ==6312== ERROR: AddressSanitizer: heap-use-after-free on address 0x7fd558b1af58 at pc 0xcb7529 bp 0x7fffff572080 sp 0x7fffff572078
      READ of size 1 at 0x7fd558b1af58 thread T0
          #0 0xcb7528 .../llvm/include/llvm/ADT/StringRef.h:192 llvm::StringRef::operator[]()
          #1 0x1d53c0a .../llvm/include/llvm/ADT/StringExtras.h:128 llvm::HashString()
          #2 0x1d53878 .../llvm/lib/Support/StringMap.cpp:64 llvm::StringMapImpl::LookupBucketFor()
          #3 0x1b6872f .../llvm/include/llvm/ADT/StringMap.h:352 llvm::StringMap<>::GetOrCreateValue<>()
          #4 0x1b61836 .../llvm/lib/MC/MCContext.cpp:109 llvm::MCContext::GetOrCreateSymbol()
          #5 0xe9fd47 .../llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp:154 (anonymous namespace)::ARMELFStreamer::EmitMappingSymbol()
          #6 0xea01dd .../llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp:133 (anonymous namespace)::ARMELFStreamer::EmitDataMappingSymbol()
          #7 0xe9f78b .../llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp:91 (anonymous namespace)::ARMELFStreamer::EmitBytes()
          #8 0x1b15d82 .../llvm/lib/MC/MCStreamer.cpp:89 llvm::MCStreamer::EmitIntValue()
          #9 0xcc0f9b .../llvm/lib/Target/ARM/ARMAsmPrinter.cpp:713 llvm::ARMAsmPrinter::emitAttributes()
          #10 0xcc0d44 .../llvm/lib/Target/ARM/ARMAsmPrinter.cpp:632 llvm::ARMAsmPrinter::EmitStartOfAsmFile()
          #11 0x14692ad .../llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:162 llvm::AsmPrinter::doInitialization()
          #12 0x1bc4677 .../llvm/lib/VMCore/PassManager.cpp:1561 llvm::FPPassManager::doInitialization()
          #13 0x1bc4990 .../llvm/lib/VMCore/PassManager.cpp:1595 llvm::MPPassManager::runOnModule()
          #14 0x1bc55e5 .../llvm/lib/VMCore/PassManager.cpp:1705 llvm::PassManagerImpl::run()
          #15 0x1bc5878 .../llvm/lib/VMCore/PassManager.cpp:1740 llvm::PassManager::run()
          #16 0xc3954d .../llvm/tools/llc/llc.cpp:378 compileModule()
          #17 0xc38001 .../llvm/tools/llc/llc.cpp:194 main
          #18 0x7fd557d6a11c __libc_start_main
      0x7fd558b1af58 is located 24 bytes inside of 29-byte region [0x7fd558b1af40,0x7fd558b1af5d)
      freed by thread T0 here:
          #0 0xc337da .../llvm/projects/compiler-rt/lib/asan/asan_new_delete.cc:56 operator delete()
          #1 0x1ee9cef .../libstdc++-v3/include/bits/basic_string.h:535 std::string::~string()
          #2 0xea01dd .../llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp:133 (anonymous namespace)::ARMELFStreamer::EmitDataMappingSymbol()
          #3 0xe9f78b .../llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp:91 (anonymous namespace)::ARMELFStreamer::EmitBytes()
          #4 0x1b15d82 .../llvm/lib/MC/MCStreamer.cpp:89 llvm::MCStreamer::EmitIntValue()
          #5 0xcc0f9b .../llvm/lib/Target/ARM/ARMAsmPrinter.cpp:713 llvm::ARMAsmPrinter::emitAttributes()
          #6 0xcc0d44 .../llvm/lib/Target/ARM/ARMAsmPrinter.cpp:632 llvm::ARMAsmPrinter::EmitStartOfAsmFile()
          #7 0x14692ad .../llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:162 llvm::AsmPrinter::doInitialization()
          #8 0x1bc4677 .../llvm/lib/VMCore/PassManager.cpp:1561 llvm::FPPassManager::doInitialization()
          #9 0x1bc4990 .../llvm/lib/VMCore/PassManager.cpp:1595 llvm::MPPassManager::runOnModule()
          #10 0x1bc55e5 .../llvm/lib/VMCore/PassManager.cpp:1705 llvm::PassManagerImpl::run()
          #11 0x1bc5878 .../llvm/lib/VMCore/PassManager.cpp:1740 llvm::PassManager::run()
          #12 0xc3954d .../llvm/tools/llc/llc.cpp:378 compileModule()
          #13 0xc38001 .../llvm/tools/llc/llc.cpp:194 main
          #14 0x7fd557d6a11c __libc_start_main
      
      llvm-svn: 169668
      1d94e932
    • Richard Smith's avatar
      Properly compute triviality for explicitly-defaulted or deleted special members. · 92f241f1
      Richard Smith authored
      Remove pre-standard restriction on explicitly-defaulted copy constructors with
      'incorrect' parameter types, and instead just make those special members
      non-trivial as the standard requires.
      
      This required making CXXRecordDecl correctly handle classes which have both a
      trivial and a non-trivial special member of the same kind.
      
      This also fixes PR13217 by reimplementing DiagnoseNontrivial in terms of the
      new triviality computation technology.
      
      llvm-svn: 169667
      92f241f1
    • Argyrios Kyrtzidis's avatar
      [libclang] Resolve a cursor that points to a macro name inside a #ifdef/#ifndef · f77b0f88
      Argyrios Kyrtzidis authored
      directive as a macro expansion.
      
      This is more of a "macro reference" than a macro expansion but it's close enough
      for libclang's purposes. If it causes issues we can revisit and introduce a new
      kind of cursor.
      
      llvm-svn: 169666
      f77b0f88
    • Argyrios Kyrtzidis's avatar
      [Preprocessor] Enhance Ifdef/Ifndef/Defined preprocessor callbacks to also pass · 222a7bbf
      Argyrios Kyrtzidis authored
      a MacroInfo object if the identifier was a macro name.
      
      llvm-svn: 169665
      222a7bbf
    • Richard Smith's avatar
      Add a FIXME. · 189aba93
      Richard Smith authored
      llvm-svn: 169664
      189aba93
    • Jim Ingham's avatar
      Even when we aren’t going to init all the lldb.frame, etc, globals, init... · 5320624d
      Jim Ingham authored
      Even when we aren’t going to init all the lldb.frame, etc, globals, init lldb.debugger, since each script interpreter is tied to just one debugger.
      
      llvm-svn: 169663
      5320624d
    • Richard Smith's avatar
      Implement C++03 [dcl.init]p5's checking for value-initialization of references · 593f993a
      Richard Smith authored
      properly, rather than faking it up by pretending that a reference member makes
      the default constructor non-trivial. That leads to rejects-valids when putting
      such types inside unions.
      
      llvm-svn: 169662
      593f993a
    • Filipe Cabecinhas's avatar
      Get LLDB-Info.plist up to date with r169081. · 1536e3b2
      Filipe Cabecinhas authored
      llvm-svn: 169661
      1536e3b2
    • Alexey Samsonov's avatar
    • Michael J. Spencer's avatar
      Add the core architecture for the lld driver. · 9ff4be24
      Michael J. Spencer authored
      This includes selecting which driver to emulate, option parsing, invocation
      building, and running the link. This currently only supports a very basic
      subset of ld for x86_64-linux.
      
      lld -flavor ld obj.o -o obj
      
      or symlink lld as (ld , link, ld64, core) to get the desired behavior without
      -flavor.
      
      llvm-svn: 169659
      9ff4be24
    • Greg Clayton's avatar
      Make sure to check for DW_AT_linkage_name to get the mangled name in the DWARF... · 71415548
      Greg Clayton authored
      Make sure to check for DW_AT_linkage_name to get the mangled name in the DWARF along with the older DW_AT_MIPS_linkage_name attribute.
      
      llvm-svn: 169657
      71415548
    • Bill Wendling's avatar
      Add the `lto_codegen_set_export_dynamic' function. · 65a6ee11
      Bill Wendling authored
      This function sets the `_exportDynamic' ivar. When that's set, we export all
      symbols (e.g. we don't run the internalize pass). This is equivalent to the
      `--export-dynamic' linker flag in GNU land:
      
      --export-dynamic
        When creating a dynamically linked executable, add all symbols to the dynamic
        symbol table. The dynamic symbol table is the set of symbols which are visible
        from dynamic objects at run time. If you do not use this option, the dynamic
        symbol table will normally contain only those symbols which are referenced by
        some dynamic object mentioned in the link. If you use dlopen to load a dynamic
        object which needs to refer back to the symbols defined by the program, rather
        than some other dynamic object, then you will probably need to use this option
        when linking the program itself.
      
      The Darwin linker will support this via the `-export_dynamic' flag. We should
      modify clang to support this via the `-rdynamic' flag.
      
      llvm-svn: 169656
      65a6ee11
Loading