Skip to content
  1. Dec 08, 2016
    • Simon Atanasyan's avatar
      [ELF][MIPS] Make _gp, _gp_disp, __gnu_local_gp global symbols · 6a4eb75c
      Simon Atanasyan authored
      These MIPS specific symbols should be global because in general they can
      have an arbitrary value. By default this value is a fixed offset from .got
      section.
      
      This patch adds more checks to the mips-gp-local.s test case but marks
      it as XFAIL because LLD does not allow redefinition of absolute symbols
      value by a linker script. This should be fixed by D27276.
      
      Differential revision: https://reviews.llvm.org/D27524
      
      llvm-svn: 289025
      6a4eb75c
    • Peter Collingbourne's avatar
      LTO: Hash the parts of the LTO configuration that affect code generation. · f4257528
      Peter Collingbourne authored
      Most importantly, we need to hash the relocation model, otherwise we can
      end up trying to link non-PIC object files into PIEs or DSOs.
      
      Differential Revision: https://reviews.llvm.org/D27556
      
      llvm-svn: 289024
      f4257528
    • Jason Molenda's avatar
      Increase timeout for Frontboard app launch request from 9 to 20 seconds · b2979d84
      Jason Molenda authored
      to match other timeouts.
      
      llvm-svn: 289023
      b2979d84
    • Ekaterina Romanova's avatar
      [DOXYGEN] Improved doxygen comments for avxintrin.h intrinsics. · d6042197
      Ekaterina Romanova authored
      Tagged parameter names with \a doxygen command to display them in italics.
      Formatted comments to fit into 80 chars.
      
      llvm-svn: 289022
      d6042197
    • Richard Smith's avatar
      [c++1z] P0490R0, NB comment GB 20: if std::tuple_size<T> is complete, use the · 208732e9
      Richard Smith authored
      tuple-like interpretation of decomposition declaration even if there is no
      ::value member. We already did this, anticipating this resolution, just update
      comments and tweak a testcase.
      
      llvm-svn: 289021
      208732e9
    • Rafael Espindola's avatar
      Delete dead code. · 41217616
      Rafael Espindola authored
      Thanks to George Rimar for pointing it out.
      
      llvm-svn: 289020
      41217616
    • Richard Smith's avatar
      [c++1z] P0003R5: Removing dynamic exception specifications. · 82da19dd
      Richard Smith authored
      We continue to support dynamic exception specifications in C++1z as an
      extension, but produce an error-by-default warning when we encounter one. This
      allows users to opt back into the feature with a warning flag, and implicitly
      opts system headers back into the feature should they happen to use it.
      
      There is one semantic change implied by P0003R5 but not implemented here:
      violating a throw() exception specification should now call std::terminate
      directly instead of calling std::unexpected(), but since P0003R5 also removes
      std::unexpected() and std::set_unexpected, and the default unexpected handler
      calls std::terminate(), a conforming C++1z program cannot tell that we are
      still calling it. The upside of this strategy is perfect backwards
      compatibility; the downside is that we don't get the more efficient 'noexcept'
      codegen for 'throw()'.
      
      llvm-svn: 289019
      82da19dd
    • Bruno Cardoso Lopes's avatar
      [Headers] Enable #include_next<float.h> on Darwin · d93779da
      Bruno Cardoso Lopes authored
      Allows darwin targets to provide additional definitions and
      implementation specifc values for float.h
      
      rdar://problem/21961491
      
      llvm-svn: 289018
      d93779da
    • Greg Clayton's avatar
      fd461fe3
    • Jason Molenda's avatar
      Set the address size based on the target's arch instead · 49034417
      Jason Molenda authored
      of using the address of the all_image_infos struct.
      <rdar://problem/29547847> 
      
      llvm-svn: 289016
      49034417
    • Zachary Turner's avatar
      Convert CommandObjectFrame to entry-based Args access. · f965cc86
      Zachary Turner authored
      In the process, discovered a bug related to the use of an
      uninitialized-pointer, and fixed as suggested by Enrico
      in an lldb-dev mailing list thread.
      
      llvm-svn: 289015
      f965cc86
    • Keno Fischer's avatar
      Revert "[CodeGen] Fix invalid DWARF info on Win64" · d4ea4c18
      Keno Fischer authored
      Appears to break on build bots. Reverting pending investigation.
      
      llvm-svn: 289014
      d4ea4c18
    • Keno Fischer's avatar
      [CodeGen] Fix invalid DWARF info on Win64 · 460218fb
      Keno Fischer authored
      The relocations for `DIEEntry::EmitValue` were wrong for Win64
      (emitting FK_Data_4 instead of FK_SecRel_4). This corrects that
      oversight so that the DWARF data is correct in Win64 COFF files.
      
      Fixes PR15393.
      
      Patch by Jameson Nash <jameson@juliacomputing.com> based on a patch
      by David Majnemer.
      
      Differential Revision: https://reviews.llvm.org/D21731
      
      llvm-svn: 289013
      460218fb
    • Zachary Turner's avatar
      Convert CommandObjectCommands to entry-based Args access. · 4574a890
      Zachary Turner authored
      llvm-svn: 289012
      4574a890
    • David L. Jones's avatar
      Loosen checks for _MSC_FULL_VER under -fms-extensions. · b4b88fdc
      David L. Jones authored
      Summary:
      On actual Windows hosts :-) , this could report something other than the
      fallback, with a non-zero minor/build number.
      
      Reviewers: rnk, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D27554
      
      llvm-svn: 289011
      b4b88fdc
    • Greg Clayton's avatar
      Make a DWARF generator so we can unit test DWARF APIs with gtest. · 3462a420
      Greg Clayton authored
      The only tests we have for the DWARF parser are the tests that use llvm-dwarfdump and expect output from textual dumps.
      
      More DWARF parser modification are coming in the next few weeks and I wanted to add tests that can verify that we can encode and decode all form types, as well as test some other basic DWARF APIs where we ask DIE objects for their children and siblings.
      
      DwarfGenerator.cpp was added in the lib/CodeGen directory. This file contains the code necessary to easily create DWARF for tests:
      
      dwarfgen::Generator DG;
      Triple Triple("x86_64--");
      bool success = DG.init(Triple, Version);
      if (!success)
        return;
      dwarfgen::CompileUnit &CU = DG.addCompileUnit();
      dwarfgen::DIE CUDie = CU.getUnitDIE();
      
      CUDie.addAttribute(DW_AT_name, DW_FORM_strp, "/tmp/main.c");
      CUDie.addAttribute(DW_AT_language, DW_FORM_data2, DW_LANG_C);
      
      dwarfgen::DIE SubprogramDie = CUDie.addChild(DW_TAG_subprogram);
      SubprogramDie.addAttribute(DW_AT_name, DW_FORM_strp, "main");
      SubprogramDie.addAttribute(DW_AT_low_pc, DW_FORM_addr, 0x1000U);
      SubprogramDie.addAttribute(DW_AT_high_pc, DW_FORM_addr, 0x2000U);
      
      dwarfgen::DIE IntDie = CUDie.addChild(DW_TAG_base_type);
      IntDie.addAttribute(DW_AT_name, DW_FORM_strp, "int");
      IntDie.addAttribute(DW_AT_encoding, DW_FORM_data1, DW_ATE_signed);
      IntDie.addAttribute(DW_AT_byte_size, DW_FORM_data1, 4);
      
      dwarfgen::DIE ArgcDie = SubprogramDie.addChild(DW_TAG_formal_parameter);
      ArgcDie.addAttribute(DW_AT_name, DW_FORM_strp, "argc");
      // ArgcDie.addAttribute(DW_AT_type, DW_FORM_ref4, IntDie);
      ArgcDie.addAttribute(DW_AT_type, DW_FORM_ref_addr, IntDie);
      
      StringRef FileBytes = DG.generate();
      MemoryBufferRef FileBuffer(FileBytes, "dwarf");
      auto Obj = object::ObjectFile::createObjectFile(FileBuffer);
      EXPECT_TRUE((bool)Obj);
      DWARFContextInMemory DwarfContext(*Obj.get());
      This code is backed by the AsmPrinter code that emits DWARF for the actual compiler.
      
      While adding unit tests it was discovered that DIEValue that used DIEEntry as their values had bugs where DW_FORM_ref1, DW_FORM_ref2, DW_FORM_ref8, and DW_FORM_ref_udata forms were not supported. These are all now supported. Added support for DW_FORM_string so we can emit inlined C strings.
      
      Centralized the code to unique abbreviations into a new DIEAbbrevSet class and made both the dwarfgen::Generator and the llvm::DwarfFile classes use the new class.
      
      Fixed comments in the llvm::DIE class so that the Offset is known to be the compile/type unit offset.
      
      DIEInteger now supports more DW_FORM values.
      
      There are also unit tests that cover:
      
      Encoding and decoding all form types and values
      Encoding and decoding all reference types (DW_FORM_ref1, DW_FORM_ref2, DW_FORM_ref4, DW_FORM_ref8, DW_FORM_ref_udata, DW_FORM_ref_addr) including cross compile unit references with that go forward one compile unit and backward on compile unit.
      
      Differential Revision: https://reviews.llvm.org/D27326
      
      llvm-svn: 289010
      3462a420
    • Zachary Turner's avatar
      Work around a bogus warning on MSVC. · 7fb5e343
      Zachary Turner authored
      llvm-svn: 289009
      7fb5e343
    • Evgeniy Stepanov's avatar
      CFI-icall on Thumb · 0c8957c1
      Evgeniy Stepanov authored
      Replace @progbits in the section directive with %progbits, because "@" starts a comment on arm/thumb.
      Use b.w branch instruction.
      Use .thumb_function and .thumb_set for proper arm/thumb interwork. This way jumptable entry addresses on thumb have bit 0 set (correctly). This does not affect CFI check math, because the address of the jumptable start also has that bit set.
      
      This does not work on thumbv5, because it does not support b.w, and the linker would not insert a veneer (trampoline?) to extend the range of b.n. We may need to do full-range plt-style jumptables on thumbv54, which are 12 bytes per entry. Another option is "push lr; bl; pop pc" (4 bytes) but that needs unwinding instructions, etc.
      
      Differential Revision: https://reviews.llvm.org/D27499
      
      llvm-svn: 289008
      0c8957c1
    • Peter Collingbourne's avatar
      LTO: Remove the unused Config::Features field. · cfef0cd3
      Peter Collingbourne authored
      We are currently initializing Features via MAttrs.
      
      llvm-svn: 289007
      cfef0cd3
    • Greg Clayton's avatar
      e04e5b95
    • Bruno Cardoso Lopes's avatar
      [Driver][Darwin] Disable default stack protector levels in freestanding mode. · cfd183ee
      Bruno Cardoso Lopes authored
      Currently -fstack-protector is on by default when using -ffreestanding.
      Change the default behavior to have it off when using -ffreestanding.
      
      rdar://problem/14089363
      
      llvm-svn: 289005
      cfd183ee
    • Matthias Braun's avatar
      The few days mentioned in r267095 are over · 9ee1a1df
      Matthias Braun authored
      llvm-svn: 289004
      9ee1a1df
    • Matthias Braun's avatar
      TargetPassConfig: Rename DisablePostRA -> DisablePostRASched; NFC · e2d2ead6
      Matthias Braun authored
      llvm-svn: 289003
      e2d2ead6
    • Matthias Braun's avatar
      LivePhysReg: Use reference instead of pointer in init(); NFC · 0c989a89
      Matthias Braun authored
      llvm-svn: 289002
      0c989a89
    • Quentin Colombet's avatar
      [InlineSpiller] Don't call TargetInstrInfo::foldMemoryOperand with an empty list. · ae3168da
      Quentin Colombet authored
      Since r287792 if we try to do that we will hit an assert.
      
      llvm-svn: 289001
      ae3168da
    • Greg Clayton's avatar
      Fix an unannotated fallthrough that was causing a warning. · 962364c6
      Greg Clayton authored
      llvm-svn: 289000
      962364c6
    • Greg Clayton's avatar
      Fixed DoConnectRemote issues where ProcessKDP wasn't switched over to use the... · 3ce7e996
      Greg Clayton authored
      Fixed DoConnectRemote issues where ProcessKDP wasn't switched over to use the version that needed a StringRef as the URL, and also updated all virtual functions to say "override" to make sure this doesn't happen again.
      
      llvm-svn: 288999
      3ce7e996
    • David L. Jones's avatar
      Refactor how the MSVC toolchain searches for a compatibility version. · 24fb20c1
      David L. Jones authored
      Summary:
      The MSVC toolchain and Clang driver combination currently uses a fairly complex
      sequence of steps to determine the MS compatibility version to pass to cc1.
      There is some oddness in this sequence currently, with some code which inspects
      flags in the toolchain, and some code which inspects the triple and local
      environment in the driver code.
      
      This change is an attempt to consolidate most of this logic so that
      Win32-specific code lives in MSVCToolChain.cpp. I'm not 100% happy with the
      split, so any suggestions are welcome.
      
      There are a few things you might want to watch for for specifically:
      
       - On all platforms, if MSVC compatibility flags are provided (and valid), use
         those.
       - The fallback sequence should be the same as before, but is now consolidated
         into MSVCToolChain::getMSVCVersion:
         - Otherwise, try to use the Triple.
         - Otherwise, on Windows, check the executable.
         - Otherwise, on Windows or with --fms-extensions, default to 18.
         - Otherwise, we can't determine the version.
       - MSVCToolChain::ComputeEffectiveTriple no longer calls the base
         ToolChain::ComputeEffectiveClangTriple. The only thing it would change for
         Windows the architecture, which we don't care about for the compatibility
         version.
          - I'm not sure whether this is philosophically correct (but it should
            be easy to add back to MSVCToolChain::getMSVCVersionFromTriple if not).
          - Previously, Tools.cpp just called getTriple() anyhow, so it doesn't look
            like the effective triple was always being used previously anyhow.
      
      Reviewers: hans, compnerd, llvm-commits, rnk
      
      Subscribers: amccarth
      
      Differential Revision: https://reviews.llvm.org/D27477
      
      llvm-svn: 288998
      24fb20c1
    • David L. Jones's avatar
      Add more tests for MSVC version handling. · 62cd8686
      David L. Jones authored
      Summary:
      This change adds more test cases for the default MSVC compatibility version:
       1. When -fms-extensions is supplied, but -fmsc-version and
          -fms-compatibility-version are not.
       2. With the target triple specifies an MSVC environment, but no other
          -fms* flags.
      
      Reviewers: rnk, llvm-commits
      
      Subscribers: hans, compnerd, amccarth
      
      Differential Revision: https://reviews.llvm.org/D27498
      
      llvm-svn: 288997
      62cd8686
    • Rui Ueyama's avatar
      Remove redundant call of std::unique_ptr::get. · 9a97acc0
      Rui Ueyama authored
      Obj is an instance of std::unique_ptr, so *Obj.get() is the same as *Obj.
      
      llvm-svn: 288996
      9a97acc0
    • Rui Ueyama's avatar
      Fix Windows buildbots. · 332e02a1
      Rui Ueyama authored
      clang-format-diff sorted these #include's in the asciibetical order,
      but they need to be in this order.
      
      llvm-svn: 288995
      332e02a1
    • Bruno Cardoso Lopes's avatar
      77bb4053
    • Rui Ueyama's avatar
    • Rui Ueyama's avatar
      COFF: Define overloaded toString functions. · a45d45e2
      Rui Ueyama authored
      Previously, we had different way to stringize SymbolBody and InputFile
      to construct error messages. This patch defines overloaded function
      toString() so that we don't need to memorize all these different
      function names.
      
      With that change, it is now easy to include demangled names in error
      messages. Now, if there is a symbol name conflict, we'll print out
      both mangled and demangled names.
      
      llvm-svn: 288992
      a45d45e2
  2. Dec 07, 2016
Loading