Skip to content
  1. Oct 07, 2019
  2. Jun 11, 2019
    • Tom Stellard's avatar
      Revert CMake: Make most target symbols hidden by default · 4b0b2619
      Tom Stellard authored
      This reverts r362990 (git commit 37457130)
      
      This was causing linker warnings on Darwin:
      
      ld: warning: direct access in function 'llvm::initializeEvexToVexInstPassPass(llvm::PassRegistry&)'
      from file '../../lib/libLLVMX86CodeGen.a(X86EvexToVex.cpp.o)' to global weak symbol
      'void std::__1::__call_once_proxy<std::__1::tuple<void* (&)(llvm::PassRegistry&),
      std::__1::reference_wrapper<llvm::PassRegistry>&&> >(void*)' from file '../../lib/libLLVMCore.a(Verifier.cpp.o)'
      means the weak symbol cannot be overridden at runtime. This was likely caused by different translation
      units being compiled with different visibility settings.
      
      llvm-svn: 363028
      4b0b2619
    • Tom Stellard's avatar
      CMake: Make most target symbols hidden by default · 37457130
      Tom Stellard authored
      Summary:
      For builds with LLVM_BUILD_LLVM_DYLIB=ON and BUILD_SHARED_LIBS=OFF
      this change makes all symbols in the target specific libraries hidden
      by default.
      
      A new macro called LLVM_EXTERNAL_VISIBILITY has been added to mark symbols in these
      libraries public, which is mainly needed for the definitions of the
      LLVMInitialize* functions.
      
      This patch reduces the number of public symbols in libLLVM.so by about
      25%.  This should improve load times for the dynamic library and also
      make abi checker tools, like abidiff require less memory when analyzing
      libLLVM.so
      
      One side-effect of this change is that for builds with
      LLVM_BUILD_LLVM_DYLIB=ON and LLVM_LINK_LLVM_DYLIB=ON some unittests that
      access symbols that are no longer public will need to be statically linked.
      
      Before and after public symbol counts (using gcc 8.2.1, ld.bfd 2.31.1):
      nm before/libLLVM-9svn.so | grep ' [A-Zuvw] ' | wc -l
      36221
      nm after/libLLVM-9svn.so | grep ' [A-Zuvw] ' | wc -l
      26278
      
      Reviewers: chandlerc, beanz, mgorny, rnk, hans
      
      Reviewed By: rnk, hans
      
      Subscribers: Jim, hiraditya, michaelplatings, chapuni, jholewinski, arsenm, dschuff, jyknight, dylanmckay, sdardis, nemanjai, jvesely, nhaehnle, javed.absar, sbc100, jgravelle-google, aheejin, kbarton, fedor.sergeev, asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, jrtc27, zzheng, edward-jones, mgrang, atanasyan, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, kristina, jsji, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D54439
      
      llvm-svn: 362990
      37457130
  3. May 15, 2019
  4. May 11, 2019
    • Richard Trieu's avatar
      [Mips] Move InstPrinter files to MCTargetDesc. NFC · fa29bee9
      Richard Trieu authored
      For some targets, there is a circular dependency between InstPrinter and
      MCTargetDesc.  Merging them together will fix this.  For the other targets,
      the merging is to maintain consistency so all targets will have the same
      structure.
      
      llvm-svn: 360497
      fa29bee9
  5. Jan 19, 2019
    • Chandler Carruth's avatar
      Update the file headers across all of the LLVM projects in the monorepo · 2946cd70
      Chandler Carruth authored
      to reflect the new license.
      
      We understand that people may be surprised that we're moving the header
      entirely to discuss the new license. We checked this carefully with the
      Foundation's lawyer and we believe this is the correct approach.
      
      Essentially, all code in the project is now made available by the LLVM
      project under our new license, so you will see that the license headers
      include that license only. Some of our contributors have contributed
      code under our old license, and accordingly, we have retained a copy of
      our old license notice in the top-level files in each project and
      repository.
      
      llvm-svn: 351636
      2946cd70
  6. Sep 27, 2018
    • Simon Atanasyan's avatar
      [mips] Add support MIPS r6 Debian triples · e58c45a6
      Simon Atanasyan authored
      Debian uses different triples for MIPS r6 and paths. Here we use SubArch
      to determine whether it is r6, if we found `r6' in CPU section of triple.
      
      These new triples include:
        mipsisa32r6-linux-gnu
        mipsisa32r6el-linux-gnu
        mipsisa64r6-linux-gnuabi64
        mipsisa64r6el-linux-gnuabi64
        mipsisa64r6-linux-gnuabin32
        mipsisa64r6el-linux-gnuabin32
      
      Patch by YunQiang Su.
      
      Differential revision: https://reviews.llvm.org/D50857
      
      llvm-svn: 343185
      e58c45a6
  7. Jun 25, 2018
    • Alexander Richardson's avatar
      Add Triple::isMIPS()/isMIPS32()/isMIPS64(). NFC · 85e200e9
      Alexander Richardson authored
      There are quite a few if statements that enumerate all these cases. It gets
      even worse in our fork of LLVM where we also have a Triple::cheri (which
      is mips64 + CHERI instructions) and we had to update all if statements that
      check for Triple::mips64 to also handle Triple::cheri. This patch helps to
      reduce our diff to upstream and should also make some checks more readable.
      
      Reviewed By: atanasyan
      
      Differential Revision: https://reviews.llvm.org/D48548
      
      llvm-svn: 335493
      85e200e9
  8. May 18, 2018
  9. Oct 12, 2017
  10. Oct 11, 2017
  11. Sep 21, 2017
    • Simon Atanasyan's avatar
      [mips] Fix relocation record format and ELF header for N32 ABI · 11766558
      Simon Atanasyan authored
      The N32 ABI uses RELA relocation format, do not use 3-in-1 relocation's
      encoding, and uses ELFCLASS32. This change passes the `IsN32` flag
      to the `MCAsmBackend` to distinguish usage of N32 ABI.
      
      We still do not handle some cases like providing the `-target-abi=o32`
      command line option with the `mips64` target triple. That's why
      elf_header.s contains some "FIXME" strings. This case will be fixed in
      a separate patch.
      
      Differential revision: https://reviews.llvm.org/D37960
      
      llvm-svn: 313873
      11766558
  12. Sep 07, 2017
    • Simon Atanasyan's avatar
      [mips] Use RegisterMCAsmBackend to register all MIPS asm backends. NFC · 6d795868
      Simon Atanasyan authored
      This change converts the `MipsAsmBackend` constructor to the "standard"
      form. It makes possible to use `RegisterMCAsmBackend` for the backends
      registrations. Now we pass `Triple` instance to the `MipsAsmBackend`
      ctor and deduce all required options like endianness and bitness from
      the triple. We still need to implement explicit ABI checking for
      providing correct options to backends.
      
      Differential revision: https://reviews.llvm.org/D37519
      
      llvm-svn: 312720
      6d795868
  13. Oct 10, 2016
  14. Jun 30, 2016
    • Rafael Espindola's avatar
      Delete MCCodeGenInfo. · d86e8bb0
      Rafael Espindola authored
      MC doesn't really care about CodeGen stuff, so this was just
      complicating target initialization.
      
      llvm-svn: 274258
      d86e8bb0
  15. May 19, 2016
    • Rafael Espindola's avatar
      Delete Reloc::Default. · 8c34dd82
      Rafael Espindola authored
      Having an enum member named Default is quite confusing: Is it distinct
      from the others?
      
      This patch removes that member and instead uses Optional<Reloc> in
      places where we have a user input that still hasn't been maped to the
      default value, which is now clear has no be one of the remaining 3
      options.
      
      llvm-svn: 269988
      8c34dd82
  16. Apr 18, 2016
    • Mehdi Amini's avatar
      [NFC] Header cleanup · b550cb17
      Mehdi Amini authored
      Removed some unused headers, replaced some headers with forward class declarations.
      
      Found using simple scripts like this one:
      clear && ack --cpp -l '#include "llvm/ADT/IndexedMap.h"' | xargs grep -L 'IndexedMap[<]' | xargs grep -n --color=auto 'IndexedMap'
      
      Patch by Eugene Kosov <claprix@yandex.ru>
      
      Differential Revision: http://reviews.llvm.org/D19219
      
      From: Mehdi Amini <mehdi.amini@apple.com>
      llvm-svn: 266595
      b550cb17
  17. Apr 11, 2016
  18. Mar 24, 2016
  19. Sep 15, 2015
    • Daniel Sanders's avatar
      Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC. · 50f17235
      Daniel Sanders authored
      Eric has replied and has demanded the patch be reverted.
      
      llvm-svn: 247702
      50f17235
    • Daniel Sanders's avatar
      Re-commit r247683: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC. · 153010c5
      Daniel Sanders authored
      Summary:
      This is the first patch in the series to migrate Triple's (which are ambiguous)
      to TargetTuple's (which aren't).
      
      For the moment, TargetTuple simply passes all requests to the Triple object it
      holds. Once it has replaced Triple, it will start to implement the interface in
      a more suitable way.
      
      This change makes some changes to the public C++ API. In particular,
      InitMCSubtargetInfo(), createMCRelocationInfo(), and createMCSymbolizer()
      now take TargetTuples instead of Triples. The other public C++ API's have
      been left as-is for the moment to reduce patch size.
      
      This commit also contains a trivial patch to clang to account for the C++ API
      change. Thanks go to Pavel Labath for fixing LLDB for me.
      
      Reviewers: rengolin
      
      Subscribers: jyknight, dschuff, arsenm, rampitec, danalbert, srhines, javed.absar, dsanders, echristo, emaste, jholewinski, tberghammer, ted, jfb, llvm-commits, rengolin
      
      Differential Revision: http://reviews.llvm.org/D10969
      
      llvm-svn: 247692
      153010c5
    • Daniel Sanders's avatar
      Revert r247684 - Replace Triple with a new TargetTuple ... · c40de480
      Daniel Sanders authored
      LLDB needs to be updated in the same commit.
      
      llvm-svn: 247686
      c40de480
    • Daniel Sanders's avatar
      Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC. · 18d4b0da
      Daniel Sanders authored
      Summary:
      This is the first patch in the series to migrate Triple's (which are ambiguous)
      to TargetTuple's (which aren't).
      
      For the moment, TargetTuple simply passes all requests to the Triple object it
      holds. Once it has replaced Triple, it will start to implement the interface in
      a more suitable way.
      
      This change makes some changes to the public C++ API. In particular,
      InitMCSubtargetInfo(), createMCRelocationInfo(), and createMCSymbolizer()
      now take TargetTuples instead of Triples. The other public C++ API's have
      been left as-is for the moment to reduce patch size.
      
      This commit also contains a trivial patch to clang to account for the C++ API
      change.
      
      Reviewers: rengolin
      
      Subscribers: jyknight, dschuff, arsenm, rampitec, danalbert, srhines, javed.absar, dsanders, echristo, emaste, jholewinski, tberghammer, ted, jfb, llvm-commits, rengolin
      
      Differential Revision: http://reviews.llvm.org/D10969
      
      llvm-svn: 247683
      18d4b0da
  20. Jul 11, 2015
    • Duncan P. N. Exon Smith's avatar
      MC: Remove MCSubtargetInfo() default constructor · 754e21f2
      Duncan P. N. Exon Smith authored
      Force all creators of `MCSubtargetInfo` to immediately initialize it,
      merging the default constructor and the initializer into an initializing
      constructor.  Besides cleaning up the code a little, this makes it clear
      that the initializer is never called again later.
      
      Out-of-tree backends need a trivial change: instead of calling:
      
          auto *X = new MCSubtargetInfo();
          InitXYZMCSubtargetInfo(X, ...);
          return X;
      
      they should call:
      
          return createXYZMCSubtargetInfoImpl(...);
      
      There's no real functionality change here.
      
      llvm-svn: 241957
      754e21f2
  21. Jul 06, 2015
    • Daniel Sanders's avatar
      Change the last few internal StringRef triples into Triple objects. · f423f562
      Daniel Sanders authored
      Summary:
      This concludes the patch series to eliminate StringRef forms of GNU triples
      from the internals of LLVM that began in r239036.
      
      At this point, the StringRef-form of GNU Triples should only be used in the
      public API (including IR serialization) and a couple objects that directly
      interact with the API (most notably the Module class). The next step is to
      replace these Triple objects with the TargetTuple object that will represent
      our authoratative/unambiguous internal equivalent to GNU Triples.
      
      Reviewers: rengolin
      
      Subscribers: llvm-commits, jholewinski, ted, rengolin
      
      Differential Revision: http://reviews.llvm.org/D10962
      
      llvm-svn: 241472
      f423f562
  22. Jun 10, 2015
  23. Jun 04, 2015
  24. May 15, 2015
  25. Apr 15, 2015
  26. Mar 31, 2015
  27. Mar 30, 2015
  28. Mar 19, 2015
  29. Mar 16, 2015
  30. Feb 19, 2015
  31. Feb 18, 2015
  32. Oct 15, 2014
Loading