Skip to content
  1. Oct 16, 2017
  2. Oct 15, 2017
    • Roman Lebedev's avatar
      Fix last_write_time.pass.cpp to work with clang-3.9 and earlier · 622e7535
      Roman Lebedev authored
      At least with clang-3.9 and earlier, -Wunknown-pragmas is also needed.
      
      llvm-svn: 315882
      622e7535
    • Rui Ueyama's avatar
      Remove Config::FirstElf. · 227cb6ba
      Rui Ueyama authored
      llvm-svn: 315881
      227cb6ba
    • Martin Storsjö's avatar
      [COFF] Fix a typo in a comment in a test. NFC. · cbf43f0b
      Martin Storsjö authored
      These chars are accidentally included vim commands.
      
      llvm-svn: 315880
      cbf43f0b
    • Martin Storsjö's avatar
      [COFF] Fix indentation. NFC. · 6e8acc25
      Martin Storsjö authored
      llvm-svn: 315879
      6e8acc25
    • Martin Storsjö's avatar
      [COFF] Fix the description of the data type in a comment. NFC. · e401aa93
      Martin Storsjö authored
      This was missed when changing data types back and forth during
      review.
      
      llvm-svn: 315878
      e401aa93
    • Rui Ueyama's avatar
      Simplify. · 7be790b1
      Rui Ueyama authored
      llvm-svn: 315877
      7be790b1
    • Roman Lebedev's avatar
      Really do make sure that last_write_time.pass.cpp still works with old clang · 7beeee49
      Roman Lebedev authored
      I *did* try to check that such kind of an issue was not introduced
      by the rL315874, but clearly i failed to finish verification.
      
      llvm-svn: 315876
      7beeee49
    • Roman Lebedev's avatar
      [Sema] Re-land: Diagnose tautological comparison with type's min/max values · 6de129e7
      Roman Lebedev authored
      The first attempt, rL315614 was reverted because one libcxx
      test broke, and i did not know at the time how to deal with it.
      
      Summary:
      Currently, clang only diagnoses completely out-of-range comparisons (e.g. `char` and constant `300`),
      and comparisons of unsigned and `0`. But gcc also does diagnose the comparisons with the
      `std::numeric_limits<>::max()` / `std::numeric_limits<>::min()` so to speak
      
      Finally Fixes https://bugs.llvm.org/show_bug.cgi?id=34147
      Continuation of https://reviews.llvm.org/D37565
      
      Reviewers: rjmccall, rsmith, aaron.ballman
      
      Reviewed By: rsmith
      
      Subscribers: rtrieu, jroelofs, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D38101
      
      llvm-svn: 315875
      6de129e7
    • Roman Lebedev's avatar
      Silence clang's -Wtautological-constant-compare in last_write_time.pass.cpp · ac9309a1
      Roman Lebedev authored
      Previously this broke the builders, when D38101 was committed.
      Silence the warning so that it can be re-landed.
      
      llvm-svn: 315874
      ac9309a1
    • Nico Weber's avatar
      Search for libxml2 on macOS too. · 58c8e3bb
      Nico Weber authored
      This allows lld-link to process /manifestinput: flags on macOS too.
      Also makes the `REQUIRES: manifesttool` lld tests run on macOS.
      Setting LLVM_ENABLE_LIBXML2 to off can suppress this behavior, like on Linux.
      
      llvm-svn: 315873
      58c8e3bb
    • Daniel Sanders's avatar
      [tablegen] Use hasPredCode()/hasImmCode() instead of... · adbf58dc
      Daniel Sanders authored
      [tablegen] Use hasPredCode()/hasImmCode() instead of getPredCode().empty()/getImmCode().empty(). NFC
      
      These are cheaper ways of testing for the presence of code than generating the C++ code and testing it's empty.
      
      llvm-svn: 315872
      adbf58dc
    • Alexander Richardson's avatar
      Convert clang::LangAS to a strongly typed enum · 6d989436
      Alexander Richardson authored
      Summary:
      Convert clang::LangAS to a strongly typed enum
      
      Currently both clang AST address spaces and target specific address spaces
      are represented as unsigned which can lead to subtle errors if the wrong
      type is passed. It is especially confusing in the CodeGen files as it is
      not possible to see what kind of address space should be passed to a
      function without looking at the implementation.
      I originally made this change for our LLVM fork for the CHERI architecture
      where we make extensive use of address spaces to differentiate between
      capabilities and pointers. When merging the upstream changes I usually
      run into some test failures or runtime crashes because the wrong kind of
      address space is passed to a function. By converting the LangAS enum to a
      C++11 we can catch these errors at compile time. Additionally, it is now
      obvious from the function signature which kind of address space it expects.
      
      I found the following errors while writing this patch:
      
      - ItaniumRecordLayoutBuilder::LayoutField was passing a clang AST address
        space to  TargetInfo::getPointer{Width,Align}()
      - TypePrinter::printAttributedAfter() prints the numeric value of the
        clang AST address space instead of the target address space.
        However, this code is not used so I kept the current behaviour
      - initializeForBlockHeader() in CGBlocks.cpp was passing
        LangAS::opencl_generic to TargetInfo::getPointer{Width,Align}()
      - CodeGenFunction::EmitBlockLiteral() was passing a AST address space to
        TargetInfo::getPointerWidth()
      - CGOpenMPRuntimeNVPTX::translateParameter() passed a target address space
        to Qualifiers::addAddressSpace()
      - CGOpenMPRuntimeNVPTX::getParameterAddress() was using
        llvm::Type::getPointerTo() with a AST address space
      - clang_getAddressSpace() returns either a LangAS or a target address
        space. As this is exposed to C I have kept the current behaviour and
        added a comment stating that it is probably not correct.
      
      Other than this the patch should not cause any functional changes.
      
      Reviewers: yaxunl, pcc, bader
      
      Reviewed By: yaxunl, bader
      
      Subscribers: jlebar, jholewinski, nhaehnle, Anastasia, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D38816
      
      llvm-svn: 315871
      6d989436
    • Krzysztof Parzyszek's avatar
      Phony change to CMakeLists.txt to (hopefully) trigger regeneration · bc7f806c
      Krzysztof Parzyszek authored
      Ninja doesn't seem to recognize a change in a CMakeLists.txt in a
      subdirectory, so r315861 is not having any effect.
      
      llvm-svn: 315870
      bc7f806c
    • Daniel Sanders's avatar
      Re-commit r315863: [globalisel][tablegen] Import ComplexPattern when used as an operator · df39cbae
      Daniel Sanders authored
      Summary:
      It's possible for a ComplexPattern to be used as an operator in a match
      pattern. This is used by the load/store patterns in AArch64 to name the
      suboperands returned by ComplexPattern predicate so that they can be broken
      apart and referenced independently in the result pattern.
      
      This patch adds support for this in order to enable the import of load/store
      patterns.
      
      Depends on D37445
      
      Hopefully fixed the ambiguous constructor that a large number of bots reported.
      
      Reviewers: ab, qcolombet, t.p.northover, rovka, aditya_nandakumar
      
      Reviewed By: qcolombet
      
      Subscribers: aemerson, javed.absar, igorb, llvm-commits, kristof.beyls
      
      Differential Revision: https://reviews.llvm.org/D37456
      
      llvm-svn: 315869
      df39cbae
    • Martell Malone's avatar
      Fix test case regresstion from rL315864 · 4806f700
      Martell Malone authored
      The patch should have been checking against STDCXX17 not STDCXX14.
      
      llvm-svn: 315868
      4806f700
    • Martell Malone's avatar
      Driver: use ld64.lld when -fuse-ld=lld for darwin · e5639e9d
      Martell Malone authored
      When using lld on macOS the current level of detection between ld and
      ld64 forces us to rename lld to ld.
      
      For ELF targets we have the ld.lld alias so for MACHO we should have
      ld64.lld so we can use lld without replacing the system compiler.
      
      This also solves the additional issue of cross compiling for MACHO
      where renaming lld to ld with only target ELF.
      
      This is the clang driver component change to use this new alias.
      
      Reviewers: ruiu, rnk
      
      Differential Revision: https://reviews.llvm.org/D38290
      
      llvm-svn: 315867
      e5639e9d
    • Daniel Sanders's avatar
      Revert r315863: [globalisel][tablegen] Import ComplexPattern when used as an operator · bb082a36
      Daniel Sanders authored
      A large number of bots are failing on an ambiguous constructor call.
      
      llvm-svn: 315866
      bb082a36
    • Martell Malone's avatar
      MACHO: ld64.lld alias for the MACHO LLD target · 1603fe28
      Martell Malone authored
      When using lld on macOS the current level of detection between ld and
      ld64 forces us to rename lld to ld.
      
      For ELF targets we have the ld.lld alias so for MACHO we should have
      ld64.lld so we can use lld without replacing the system compiler.
      
      This also solves the additional issue of cross compiling for MACHO
      where renaming lld to ld with only target ELF.
      
      The clang driver component changes will be in a follow-up commit.
      
      Reviewers: ruiu, rnk
      
      Differential Revision: https://reviews.llvm.org/D38290
      
      llvm-svn: 315865
      1603fe28
    • Martell Malone's avatar
      [driver] [cl] Add/fix c++17/c++latest · f6f6a9c1
      Martell Malone authored
      Patch by: daxpedda
      
      Differential Revision: https://reviews.llvm.org/D38123
      
      llvm-svn: 315864
      f6f6a9c1
    • Daniel Sanders's avatar
      [globalisel][tablegen] Import ComplexPattern when used as an operator · b95b867d
      Daniel Sanders authored
      Summary:
      It's possible for a ComplexPattern to be used as an operator in a match
      pattern. This is used by the load/store patterns in AArch64 to name the
      suboperands returned by ComplexPattern predicate so that they can be broken
      apart and referenced independently in the result pattern.
      
      This patch adds support for this in order to enable the import of load/store
      patterns.
      
      Depends on D37445
      
      Reviewers: ab, qcolombet, t.p.northover, rovka, aditya_nandakumar
      
      Reviewed By: qcolombet
      
      Subscribers: aemerson, javed.absar, igorb, llvm-commits, kristof.beyls
      
      Differential Revision: https://reviews.llvm.org/D37456
      
      llvm-svn: 315863
      b95b867d
    • Craig Topper's avatar
      [X86] Remove the SlowBTMem feature flag entirely · 27381173
      Craig Topper authored
      Turns out we have no patterns on the instructions that were using this feature flag for other reasons. These instructions are slow on all modern CPUs so it seems unlikely that we will spend any effort supporting these instructions going forward. So we might as well just kill of the feature flag and just fix up the comments.
      
      llvm-svn: 315862
      27381173
    • Krzysztof Parzyszek's avatar
      [unittests] Only build llvm-cfi-verify if X86 is in LLVM_TARGETS_TO_BUILD · c2e2e0a6
      Krzysztof Parzyszek authored
      The test requires a target for triple x86-64, and it fails in builds that
      do not have the X86 backend.
      
      llvm-svn: 315861
      c2e2e0a6
Loading