FailedChanges

Summary

  1. [clang] Devirtualization for classes with destructors marked as 'final' A class with a destructor marked final cannot be derived from, so it should afford the same devirtualization opportunities as marking the entire class final. Patch by logan-5 (Logan Smith) Reviewed by rsmith Differential Revision: https://reviews.llvm.org/D66621
  2. [NFC] Fixed -Wdocumentation warning /srv/llvm-buildbot-srcatch/llvm-build-dir/clang-x86_64-debian-fast/llvm.src/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def:98:1: warning: not a Doxygen trailing comment [-Wdocumentation] 1 warning generated.
  3. [NFC] Fix for rL370594
  4. [clang] Warning for non-final classes with final destructors Marking a class' destructor final prevents the class from being inherited from. However, it is a subtle and awkward way to express that at best, and unintended at worst. It may also generate worse code (in other compilers) than marking the class itself final. For these reasons, this revision adds a warning for nonfinal classes with final destructors, with a note to suggest marking the class final to silence the warning. See https://reviews.llvm.org/D66621 for more background. Patch by logan-5 (Logan Smith) Differential Revision: https://reviews.llvm.org/D66711
  5. [InstCombine] mempcpy(d,s,n) to memcpy(d,s,n) + n Summary: Back-end currently expands mempcpy, but middle-end should work with memcpy instead of mempcpy to enable more memcpy-optimization. GCC backend emits mempcpy, so LLVM backend could form it too, if we know mempcpy libcall is better than memcpy + n. https://godbolt.org/z/dOCG96 Reviewers: efriedma, spatel, craig.topper, RKSimon, jdoerfert Reviewed By: efriedma Subscribers: hjl.tools, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65737
  6. [X86] EltsFromConsecutiveLoads - Don't confuse elt count with vector element count (PR43170) EltsFromConsecutiveLoads was assuming that the number of input elts was the same as the number of elements in the output vector type when creating a zeroing shuffle, causing an assert when subvectors were being combined instead of just scalars.
  7. [X86][AVX512] Regenerate tests with common prefixes
  8. [AArch64][x86] increase value type coverage in tests; NFC This goes with D67021.
  9. Fix shadow variable warning by making CondCodes names more explicit. NFCI.
  10. Revert [Clang Interpreter] Initial patch for the constexpr interpreter This reverts r370584 (git commit afcb3de117265a69d21e5673356e925a454d7d02)
  11. [DAGCombiner] clean up code in visitShiftByConstant() This is not quite NFC because the SDLoc propagation is changed, but there are no regression test diffs from that.
  12. Fix shadow variable warning. NFCI.
  13. [Clang Interpreter] Initial patch for the constexpr interpreter Summary: This patch introduces the skeleton of the constexpr interpreter, capable of evaluating a simple constexpr functions consisting of if statements. The interpreter is described in more detail in the RFC. Further patches will add more features. Reviewers: Bigcheese, jfb, rsmith Subscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64146
  14. [X86ISelLowering] combineCMov - cleanup CMOV->LEA codegen. NFCI. Only compute the diff once and we don't need the truncation code (assert the bitwidth is correct just to be safe).
  15. [X86ISelLowering] LowerSELECT - remove duplicate value type. NFCI. VT of SELECT result and selection ops will be the same.
  16. Fix cppcheck shadow variable and variable scope warnings. NFCI.
  17. [DAGCombiner] Match (add X, X) as (shl X, 1) when detecting rotate. Summary: The combiner transforms (shl X, 1) into (add X, X). Reviewers: craig.topper, efriedma, RKSimon, lebedev.ri Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66882
  18. [llvm-objcopy] Simplify alignToAddr with llvm::alignTo
  19. [DAGCombiner] Don't create illegal narrow stores Narrowing stores when the target doesn't support the narrow version forces the target to expand into a load-modify-store sequence, which is highly suboptimal. The information narrowing throws away (legality of the inverse transform) is hard to re-analyze. If the target doesn't support a store of the narrow type, don't narrow even in pre-legalize mode. No test as this is DAGCombiner and depends on target bits.
  20. [LVI] Extract solveBlockValueExtractValue(); NFC Extract this method in preparation for additional extractvalue support.
  21. [CVP] Add tests for simplified with.overflow + icmp; NFC These tests are based on D19867.
  22. [CVP] Generate simpler code for elided with.overflow intrinsics Use a { iN undef, i1 false } struct as the base, and only insert the first operand, instead of using { iN undef, i1 undef } as the base and inserting both. This is the same as what we do in InstCombine. Differential Revision: https://reviews.llvm.org/D67034
  23. [CodeGen] Refactor DAGTypeLegalizer::ExpandIntRes_MULFIX. NFC Restructured the code a little bit in preparation for adding UMULFIXSAT. I think it will be easier to understand the code if not interleaving the codegen for signed/unsigned/saturated cases that much.
  24. [LangRef] Update saturating examples for llvm.smul.fix.sat. NFC Some saturation examples for llvm.smul.fix.sat were not showing the correct result. I've adjusted the operands to make sure that we actually trigger overflow in those examples.
  25. Fix some errors introduced by rL370563 which were not exposed on my local machine. 1. zlib::compress accept &size_t but the param is an uint64_t. 2. Some systems don't have zlib installed. Don't use compression by default.
  26. [SampleFDO] Add profile symbol list section to discriminate function being cold versus function being newly added. This is the second half of https://reviews.llvm.org/D66374. Profile symbol list is the collection of function symbols showing up in the binary which generates the current profile. It is used to discriminate function being cold versus function being newly added. Profile symbol list is only added for profile with ExtBinary format. During profile use compilation, when profile-sample-accurate is enabled, a function without profile will be regarded as cold only when it is contained in that list. Differential Revision: https://reviews.llvm.org/D66766
  27. Introduce a DirectoryEntryRef that stores both a reference and an accessed name to the directory entry This commit introduces a parallel API that returns a DirectoryEntryRef to the FileManager, similar to the parallel FileEntryRef API. All uses will have to be update in follow-up patches. The immediate use of the new API in this patch fixes the issue where a file manager was reused in clang-scan-deps, but reported an different file path whenever a framework lookup was done through a symlink. Differential Revision: https://reviews.llvm.org/D67026
  28. llvm-dwarfdump: Cache CU low_pc when computing statistics.
  29. [c++20] Add support for designated direct-list-initialization syntax. This completes the implementation of P0329R4.
  30. [WebAssembly] Add SIMD QFMA/QFMS Summary: Adds clang builtins and LLVM intrinsics for these experimental instructions. They are not implemented in engines yet, but that is ok because the user must opt into using them by calling the builtins. Reviewers: aheejin, dschuff Reviewed By: aheejin Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D67020
  31. [c++20] Disallow template argument deduction from a braced-init-list containing designators. The C++20 wording doesn't actually say what happens in this case, but treating this as a non-deduced context seems like the most natural behavior. (We might want to consider deducing through array designators as an extension in the future, but will need to be careful to deduce the array bound properly if we do so. That's not permitted herein.)
  32. Revert "Add gdb pretty printers for a wide variety of libc++ data structures." This reverts commit d8c9f2f572fe06a34ccfc28ee9223b64d7d275d3.
  33. Add gdb pretty printers for a wide variety of libc++ data structures. Summary: Also add a test suite. Reviewers: EricWF Subscribers: christof, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65609 Run a pep8 formatter. Run pep8 formatter. Convert to PEP8, address other comments from code review.
  34. [lit] Only set DYLD_LIBRARY_PATH for shared builds In r370135 I committed a temporary workaround for the sanitized bot to not set (DY)LD_LIBRARY_PATH when (DY)LD_INSERT_LIBRARIES was set. Setting (DY)LD_LIBRARY_PATH is only necessary for (standalone) shared-library builds, so a better solution is to only set the environment variable when necessary. Differential revision: https://reviews.llvm.org/D67012
  35. [MemorySSA] Rename all phi entries. When renaming Phis incoming values, there may be multiple edges incoming from the same block (switch). Rename all.
  36. [GVN] Verify value equality before doing phi translation for call instruction This is an updated version of https://reviews.llvm.org/D66909 to fix PR42605. Basically, current phi translatation translates an old value number to an new value number for a call instruction based on the literal equality of call expression, without verifying there is no clobber in between. This is incorrect. To get a finegrain check, use MachineDependence analysis to do the job. However, this is still not ideal. Although given a call instruction, `MemoryDependenceResults::getCallDependencyFrom` returns identical call instructions without clobber in between using MemDepResult with its DepType to be `Def`. However, identical is too strict here and we want it to be relaxed a little to consider phi-translation -- callee is the same, param operands can be different. That means changing the semantic of `MemDepResult::Def` and I don't know the potential impact. So currently the patch is still conservative to only handle MemDepResult::NonFuncLocal, which means the current call has no function local clobber. If there is clobber, even if the clobber doesn't stand in between the current call and the call with the new value, we won't do phi-translate. Differential Revision: https://reviews.llvm.org/D67013
  37. ASTReader: Bypass overridden files when reading PCHs If contents of a file that is part of a PCM are overridden when reading it, but weren't overridden when the PCM was being built, the ASTReader will emit an error. Now it creates a separate FileEntry for recovery, bypassing the overridden content instead of discarding it. The pre-existing testcase clang/test/PCH/remap-file-from-pch.cpp confirms that the new recovery method works correctly. This resolves a long-standing FIXME to avoid hypothetically invalidating another precompiled module that's already using the overridden contents. This also removes ContentCache-related API that would be unsafe to use across `CompilerInstance`s in an implicit modules build. This helps to unblock us sinking it from SourceManager into FileManager in the future, which would allow us to delete `InMemoryModuleCache`. https://reviews.llvm.org/D66710
  38. [c++20] Implement semantic restrictions for C++20 designated initializers. This has some interesting interactions with our existing extensions to support C99 designated initializers as an extension in C++. Those are resolved as follows: * We continue to permit the full breadth of C99 designated initializers in C++, with the exception that we disallow a partial overwrite of an initializer with a non-trivially-destructible type. (Full overwrite is OK, because we won't run the first initializer at all.) * The C99 extensions are disallowed in SFINAE contexts and during overload resolution, where they could change the meaning of valid programs. * C++20 disallows reordering of initializers. We only check for that for the simple cases that the C++20 rules permit (designators of the form '.field_name =' and continue to allow reordering in other cases). It would be nice to improve this behavior in future. * All C99 designated initializer extensions produce a warning by default in C++20 mode. People are going to learn the C++ rules based on what Clang diagnoses, so it's important we diagnose these properly by default. * In C++ <= 17, we apply the C++20 rules rather than the C99 rules, and so still diagnose C99 extensions as described above. We continue to accept designated C++20-compatible initializers in C++ <= 17 silently by default (but naturally still reject under -pedantic-errors). This is not a complete implementation of P0329R4. In particular, that paper introduces new non-C99-compatible syntax { .field { init } }, and we do not support that yet. This is based on a previous patch by Don Hinton, though I've made substantial changes when addressing the above interactions. Differential Revision: https://reviews.llvm.org/D59754
  39. Fix SEH_NoReturn machine verifier error
  40. [MC] Avoid crashes from improperly nested or wrong target .seh_handlerdata directives
  41. Revert [Clang Interpreter] Initial patch for the constexpr interpreter This reverts r370531 (git commit d4c1002e0bbbbab50f6891cdd2f5bd3a8f3a3584)
  42. [X86] Print register names in .seh_* directives Also improve assembler parser register validation for .seh_ directives. This requires moving X86-specific seh directive handling into the x86 backend, which addresses some assembler FIXMEs. Differential Revision: https://reviews.llvm.org/D66625
  43. [Clang Interpreter] Initial patch for the constexpr interpreter Summary: This patch introduces the skeleton of the constexpr interpreter, capable of evaluating a simple constexpr functions consisting of if statements. The interpreter is described in more detail in the RFC. Further patches will add more features. Reviewers: Bigcheese, jfb, rsmith Subscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64146
  44. [x86] add tests for shift-logic-shift; NFC
  45. [AArch64] add tests for shift-logic-shift; NFC
  46. Make add_new_check.py's insertion of registerCheck<> match the sort order Summary: Following on from review comments in D65919 about the ordering of the registerCheck<> calls. Sort based on the check name which might be on the line after the registerCheck<> Reviewers: aaron.ballman Subscribers: cfe-commits, llvm-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D66505
  47. [Windows] Disable TrapUnreachable for Win64, add SEH_NoReturn Users have complained llvm.trap produce two ud2 instructions on Win64, one for the trap, and one for unreachable. This change fixes that. TrapUnreachable was added and enabled for Win64 in r206684 (April 2014) to avoid poorly understood issues with the Windows unwinder. There seem to be two major things in play: - the unwinder - C++ EH, _CxxFrameHandler3 & co The unwinder disassembles forward from the return address to scan for epilogues. Inserting a ud2 had the effect of stopping the unwinder, and ensuring that it ran the EH personality function for the current frame. However, it's not clear what the unwinder does when the return address happens to be the last address of one function and the first address of the next function. The Visual C++ EH personality, _CxxFrameHandler3, needs to figure out what the current EH state number is. It does this by consulting the ip2state table, which maps from PC to state number. This seems to go wrong when the return address is the last PC of the function or catch funclet. I'm not sure precisely which system is involved here, but in order to address these real or hypothetical problems, I believe it is enough to insert int3 after a call site if it would otherwise be the last instruction in a function or funclet. I was able to reproduce some similar problems locally by arranging for a noreturn call to appear at the end of a catch block immediately before an unrelated function, and I confirmed that the problems go away when an extra trailing int3 instruction is added. MSVC inserts int3 after every noreturn function call, but I believe it's only necessary to do it if the call would be the last instruction. This change inserts a pseudo instruction that expands to int3 if it is in the last basic block of a function or funclet. I did what I could to run the Microsoft compiler EH tests, and the ones I was able to run showed no behavior difference before or after this change. Differential Revision: https://reviews.llvm.org/D66980
  48. [IFS][NFC] llvm-ifs: Fixing build bot build break: revert r370517 and r370510.
  49. [Thumb2] tighten CHECK lines in test; NFC The sequence between the function call and the asm start may change without affecting what this test is looking for, but we should have a better idea about what that sequence looks like.
  50. [IFS][NFC] llvm-ifs: Fixing build bot error due to commit conflicts. r370510 and r370504 Again only on gcc.
  51. gn build: Merge r370512
  52. [X86] Fix mul test cases in avx512-broadcast-unfold.ll to not get canonicalized to fadd. Remove the fsub test cases which were also testing fadd. Not sure how to prevent an fsub by constant getting turned into an fadd by negative constant.
  53. [clang-tidy] Add llvm-prefer-register-over-unsigned to clang-tidy Summary: This clang-tidy check is looking for unsigned integer variables whose initializer starts with an implicit cast from llvm::Register and changes the type of the variable to llvm::Register (dropping the llvm:: where possible). Reviewers: arsenm, bogner Subscribers: jholewinski, MatzeB, qcolombet, dschuff, jyknight, dylanmckay, sdardis, nemanjai, jvesely, wdng, nhaehnle, mgorny, sbc100, jgravelle-google, kristof.beyls, hiraditya, aheejin, kbarton, fedor.sergeev, javed.absar, asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, jrtc27, MaskRay, zzheng, edward-jones, atanasyan, rogfer01, MartinMosbeck, brucehoult, the_o, tpr, PkmX, jocewei, jsji, Petar.Avramovic, asbirlea, Jim, s.egerton, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D65919
  54. [IFS][NFC] llvm-ifs: Fixing build errors for bots using GCC. gcc produces the error: error: specialization of ‘template<class T, class Enable> struct llvm::yaml::ScalarTraits’ in different namespace For all specializations outside of llvm::yaml. So I added llvm::yaml to these specializations to fix the errors on the bots building with gcc (/usr/bin/c++).
  55. [DFAPacketizer] Allow namespacing of automata per-itinerary The Hexagon itineraries are cunningly crafted such that functional units between itineraries do not clash. Because all itineraries are bundled into the same DFA, a functional unit index clash would cause an incorrect DFA to be generated. A workaround for this is to ensure all itineraries declare the universe of all possible functional units, but this isn't ideal for three reasons: 1) We only have a limited number of FUs we can encode in the packetizer, and using the universe causes us to hit the limit without care. 2) Silent codegen faults are bad, and careful triage of the FU list shouldn't be required. 3) Smooshing all itineraries into the same automaton allows combinations of instruction classes that cannot exist, which bloats the table. A simple solution is to allow "namespacing" packetizers. Differential Revision: https://reviews.llvm.org/D66940
  56. [X86] Regenerate the test cases added in r370506. Something weird happened with the v2i64/v2f64 test cases which don't use broadcast. So they should already be hoisted, but weren't in the version I submitted in r370506. This fixes that. Not sure if something changed or I screwed up.
  57. [X86] Add test caes for opportunities for machine LICM to unfold broadcasted constant pool loads. MachineLICM is able to unfold loads to move an invariant load out a loop, but X86 infrastructure currently lacks the ability to do this when avx512 embedded broadcasting is used. This test adds examples for the basic float point operations, add, mul, and, or, and xor.
  58. [PowerPC][NFC] Avoid checking non-relevant .cfi instructions Summary: This is brought up in https://reviews.llvm.org/D64662?id=209923#inline-599490 CFI information are non-relevant to quite some testcases, we should get rid of checking them when its unecessary. This patch avoid generating cfi info in testcases that are not testing prolog/epilog or exception handling. Reviewers: kbarton, hfinkel, nemanjai, #powerpc Reviewed By: hfinkel Subscribers: MaskRay, shchenz, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67016
  59. Fix compilation warnings. NFC.
Revision 370597 by xbolva00:
[clang] Devirtualization for classes with destructors marked as 'final'

A class with a destructor marked final cannot be derived from, so it should afford the same devirtualization opportunities as marking the entire class final.

Patch by logan-5 (Logan Smith)
Reviewed by rsmith

Differential Revision: https://reviews.llvm.org/D66621
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/DeclCXX.cpp (diff)clang.src/lib/AST/DeclCXX.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/devirtualize-virtual-function-calls-final.cpp (diff)clang.src/test/CodeGenCXX/devirtualize-virtual-function-calls-final.cpp
Revision 370596 by xbolva00:
[NFC] Fixed -Wdocumentation warning

/srv/llvm-buildbot-srcatch/llvm-build-dir/clang-x86_64-debian-fast/llvm.src/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def:98:1: warning: not a Doxygen trailing comment [-Wdocumentation]
1 warning generated.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def (diff)llvm.src/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def
Revision 370595 by xbolva00:
[NFC] Fix for rL370594
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticGroups.td (diff)clang.src/include/clang/Basic/DiagnosticGroups.td
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (diff)clang.src/include/clang/Basic/DiagnosticSemaKinds.td
Revision 370594 by xbolva00:
[clang] Warning for non-final classes with final destructors

Marking a class' destructor final prevents the class from being inherited from. However, it is a subtle and awkward way to express that at best, and unintended at worst. It may also generate worse code (in other compilers) than marking the class itself final. For these reasons, this revision adds a warning for nonfinal classes with final destructors, with a note to suggest marking the class final to silence the warning.

See https://reviews.llvm.org/D66621 for more background.

Patch by logan-5 (Logan Smith)

Differential Revision: https://reviews.llvm.org/D66711
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaDeclCXX.cpp (diff)clang.src/lib/Sema/SemaDeclCXX.cpp
The file was modified/cfe/trunk/test/SemaCXX/MicrosoftExtensions.cpp (diff)clang.src/test/SemaCXX/MicrosoftExtensions.cpp
The file was added/cfe/trunk/test/SemaCXX/warn-final-dtor-non-final-class.cppclang.src/test/SemaCXX/warn-final-dtor-non-final-class.cpp
Revision 370593 by xbolva00:
[InstCombine] mempcpy(d,s,n) to memcpy(d,s,n) + n

Summary:
Back-end currently expands mempcpy, but middle-end should work with memcpy instead of mempcpy to enable more memcpy-optimization.

GCC backend emits mempcpy, so LLVM backend could form it too, if we know mempcpy libcall is better than memcpy + n.
https://godbolt.org/z/dOCG96

Reviewers: efriedma, spatel, craig.topper, RKSimon, jdoerfert

Reviewed By: efriedma

Subscribers: hjl.tools, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D65737
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Transforms/Utils/SimplifyLibCalls.h (diff)llvm.src/include/llvm/Transforms/Utils/SimplifyLibCalls.h
The file was modified/llvm/trunk/lib/Transforms/Utils/SimplifyLibCalls.cpp (diff)llvm.src/lib/Transforms/Utils/SimplifyLibCalls.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/mempcpy.ll (diff)llvm.src/test/Transforms/InstCombine/mempcpy.ll
Revision 370592 by rksimon:
[X86] EltsFromConsecutiveLoads - Don't confuse elt count with vector element count (PR43170)

EltsFromConsecutiveLoads was assuming that the number of input elts was the same as the number of elements in the output vector type when creating a zeroing shuffle, causing an assert when subvectors were being combined instead of just scalars.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-avx512.ll (diff)llvm.src/test/CodeGen/X86/vector-shuffle-avx512.ll
Revision 370591 by rksimon:
[X86][AVX512] Regenerate tests with common prefixes
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-avx512.ll (diff)llvm.src/test/CodeGen/X86/vector-shuffle-avx512.ll
Revision 370590 by spatel:
[AArch64][x86] increase value type coverage in tests; NFC
This goes with D67021.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/AArch64/shift-logic.ll (diff)llvm.src/test/CodeGen/AArch64/shift-logic.ll
The file was modified/llvm/trunk/test/CodeGen/X86/shift-logic.ll (diff)llvm.src/test/CodeGen/X86/shift-logic.ll
Revision 370589 by rksimon:
Fix shadow variable warning by making CondCodes names more explicit. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 370588 by nand:
Revert [Clang Interpreter] Initial patch for the constexpr interpreter

This reverts r370584 (git commit afcb3de117265a69d21e5673356e925a454d7d02)
Change TypePath in RepositoryPath in Workspace
The file was removed/cfe/trunk/docs/ConstantInterpreter.rstclang.src/docs/ConstantInterpreter.rst
The file was modified/cfe/trunk/docs/index.rst (diff)clang.src/docs/index.rst
The file was modified/cfe/trunk/include/clang/AST/ASTContext.h (diff)clang.src/include/clang/AST/ASTContext.h
The file was removed/cfe/trunk/include/clang/AST/OptionalDiagnostic.hclang.src/include/clang/AST/OptionalDiagnostic.h
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticASTKinds.td (diff)clang.src/include/clang/Basic/DiagnosticASTKinds.td
The file was modified/cfe/trunk/include/clang/Basic/LangOptions.def (diff)clang.src/include/clang/Basic/LangOptions.def
The file was modified/cfe/trunk/include/clang/Driver/Options.td (diff)clang.src/include/clang/Driver/Options.td
The file was modified/cfe/trunk/lib/AST/ASTContext.cpp (diff)clang.src/lib/AST/ASTContext.cpp
The file was modified/cfe/trunk/lib/AST/CMakeLists.txt (diff)clang.src/lib/AST/CMakeLists.txt
The file was modified/cfe/trunk/lib/AST/ExprConstant.cpp (diff)clang.src/lib/AST/ExprConstant.cpp
The file was removed/cfe/trunk/lib/AST/Interpclang.src/lib/AST/Interp
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cpp (diff)clang.src/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/lib/Frontend/CompilerInvocation.cpp (diff)clang.src/lib/Frontend/CompilerInvocation.cpp
The file was removed/cfe/trunk/test/AST/Interpclang.src/test/AST/Interp
The file was modified/cfe/trunk/test/SemaCXX/constant-expression-cxx2a.cpp (diff)clang.src/test/SemaCXX/constant-expression-cxx2a.cpp
The file was modified/cfe/trunk/test/SemaCXX/constexpr-many-arguments.cpp (diff)clang.src/test/SemaCXX/constexpr-many-arguments.cpp
The file was modified/cfe/trunk/test/SemaCXX/shift.cpp (diff)clang.src/test/SemaCXX/shift.cpp
The file was modified/cfe/trunk/utils/TableGen/CMakeLists.txt (diff)clang.src/utils/TableGen/CMakeLists.txt
The file was removed/cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cppclang.src/utils/TableGen/ClangOpcodesEmitter.cpp
The file was modified/cfe/trunk/utils/TableGen/TableGen.cpp (diff)clang.src/utils/TableGen/TableGen.cpp
The file was modified/cfe/trunk/utils/TableGen/TableGenBackends.h (diff)clang.src/utils/TableGen/TableGenBackends.h
The file was modified/llvm/trunk/utils/gn/secondary/clang/lib/AST/BUILD.gn (diff)llvm.src/utils/gn/secondary/clang/lib/AST/BUILD.gn
The file was removed/llvm/trunk/utils/gn/secondary/clang/lib/AST/Interpllvm.src/utils/gn/secondary/clang/lib/AST/Interp
The file was modified/llvm/trunk/utils/gn/secondary/clang/utils/TableGen/BUILD.gn (diff)llvm.src/utils/gn/secondary/clang/utils/TableGen/BUILD.gn
Revision 370587 by spatel:
[DAGCombiner] clean up code in visitShiftByConstant()

This is not quite NFC because the SDLoc propagation is changed,
but there are no regression test diffs from that.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Revision 370585 by rksimon:
Fix shadow variable warning. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 370584 by nand:
[Clang Interpreter] Initial patch for the constexpr interpreter

Summary:
This patch introduces the skeleton of the constexpr interpreter,
capable of evaluating a simple constexpr functions consisting of
if statements. The interpreter is described in more detail in the
RFC. Further patches will add more features.

Reviewers: Bigcheese, jfb, rsmith

Subscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64146
Change TypePath in RepositoryPath in Workspace
The file was added/cfe/trunk/docs/ConstantInterpreter.rstclang.src/docs/ConstantInterpreter.rst
The file was modified/cfe/trunk/docs/index.rst (diff)clang.src/docs/index.rst
The file was modified/cfe/trunk/include/clang/AST/ASTContext.h (diff)clang.src/include/clang/AST/ASTContext.h
The file was added/cfe/trunk/include/clang/AST/OptionalDiagnostic.hclang.src/include/clang/AST/OptionalDiagnostic.h
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticASTKinds.td (diff)clang.src/include/clang/Basic/DiagnosticASTKinds.td
The file was modified/cfe/trunk/include/clang/Basic/LangOptions.def (diff)clang.src/include/clang/Basic/LangOptions.def
The file was modified/cfe/trunk/include/clang/Driver/Options.td (diff)clang.src/include/clang/Driver/Options.td
The file was modified/cfe/trunk/lib/AST/ASTContext.cpp (diff)clang.src/lib/AST/ASTContext.cpp
The file was modified/cfe/trunk/lib/AST/CMakeLists.txt (diff)clang.src/lib/AST/CMakeLists.txt
The file was modified/cfe/trunk/lib/AST/ExprConstant.cpp (diff)clang.src/lib/AST/ExprConstant.cpp
The file was added/cfe/trunk/lib/AST/Interpclang.src/lib/AST/Interp
The file was added/cfe/trunk/lib/AST/Interp/Block.cppclang.src/lib/AST/Interp/Block.cpp
The file was added/cfe/trunk/lib/AST/Interp/Block.hclang.src/lib/AST/Interp/Block.h
The file was added/cfe/trunk/lib/AST/Interp/ByteCodeEmitter.cppclang.src/lib/AST/Interp/ByteCodeEmitter.cpp
The file was added/cfe/trunk/lib/AST/Interp/ByteCodeEmitter.hclang.src/lib/AST/Interp/ByteCodeEmitter.h
The file was added/cfe/trunk/lib/AST/Interp/ByteCodeExprGen.cppclang.src/lib/AST/Interp/ByteCodeExprGen.cpp
The file was added/cfe/trunk/lib/AST/Interp/ByteCodeExprGen.hclang.src/lib/AST/Interp/ByteCodeExprGen.h
The file was added/cfe/trunk/lib/AST/Interp/ByteCodeGenError.cppclang.src/lib/AST/Interp/ByteCodeGenError.cpp
The file was added/cfe/trunk/lib/AST/Interp/ByteCodeGenError.hclang.src/lib/AST/Interp/ByteCodeGenError.h
The file was added/cfe/trunk/lib/AST/Interp/ByteCodeStmtGen.cppclang.src/lib/AST/Interp/ByteCodeStmtGen.cpp
The file was added/cfe/trunk/lib/AST/Interp/ByteCodeStmtGen.hclang.src/lib/AST/Interp/ByteCodeStmtGen.h
The file was added/cfe/trunk/lib/AST/Interp/CMakeLists.txtclang.src/lib/AST/Interp/CMakeLists.txt
The file was added/cfe/trunk/lib/AST/Interp/Context.cppclang.src/lib/AST/Interp/Context.cpp
The file was added/cfe/trunk/lib/AST/Interp/Context.hclang.src/lib/AST/Interp/Context.h
The file was added/cfe/trunk/lib/AST/Interp/Descriptor.cppclang.src/lib/AST/Interp/Descriptor.cpp
The file was added/cfe/trunk/lib/AST/Interp/Descriptor.hclang.src/lib/AST/Interp/Descriptor.h
The file was added/cfe/trunk/lib/AST/Interp/Disasm.cppclang.src/lib/AST/Interp/Disasm.cpp
The file was added/cfe/trunk/lib/AST/Interp/EvalEmitter.cppclang.src/lib/AST/Interp/EvalEmitter.cpp
The file was added/cfe/trunk/lib/AST/Interp/EvalEmitter.hclang.src/lib/AST/Interp/EvalEmitter.h
The file was added/cfe/trunk/lib/AST/Interp/Frame.cppclang.src/lib/AST/Interp/Frame.cpp
The file was added/cfe/trunk/lib/AST/Interp/Frame.hclang.src/lib/AST/Interp/Frame.h
The file was added/cfe/trunk/lib/AST/Interp/Function.cppclang.src/lib/AST/Interp/Function.cpp
The file was added/cfe/trunk/lib/AST/Interp/Function.hclang.src/lib/AST/Interp/Function.h
The file was added/cfe/trunk/lib/AST/Interp/Integral.hclang.src/lib/AST/Interp/Integral.h
The file was added/cfe/trunk/lib/AST/Interp/Interp.cppclang.src/lib/AST/Interp/Interp.cpp
The file was added/cfe/trunk/lib/AST/Interp/Interp.hclang.src/lib/AST/Interp/Interp.h
The file was added/cfe/trunk/lib/AST/Interp/InterpFrame.cppclang.src/lib/AST/Interp/InterpFrame.cpp
The file was added/cfe/trunk/lib/AST/Interp/InterpFrame.hclang.src/lib/AST/Interp/InterpFrame.h
The file was added/cfe/trunk/lib/AST/Interp/InterpStack.cppclang.src/lib/AST/Interp/InterpStack.cpp
The file was added/cfe/trunk/lib/AST/Interp/InterpStack.hclang.src/lib/AST/Interp/InterpStack.h
The file was added/cfe/trunk/lib/AST/Interp/InterpState.cppclang.src/lib/AST/Interp/InterpState.cpp
The file was added/cfe/trunk/lib/AST/Interp/InterpState.hclang.src/lib/AST/Interp/InterpState.h
The file was added/cfe/trunk/lib/AST/Interp/Opcode.hclang.src/lib/AST/Interp/Opcode.h
The file was added/cfe/trunk/lib/AST/Interp/Opcodes.tdclang.src/lib/AST/Interp/Opcodes.td
The file was added/cfe/trunk/lib/AST/Interp/Pointer.cppclang.src/lib/AST/Interp/Pointer.cpp
The file was added/cfe/trunk/lib/AST/Interp/Pointer.hclang.src/lib/AST/Interp/Pointer.h
The file was added/cfe/trunk/lib/AST/Interp/Program.cppclang.src/lib/AST/Interp/Program.cpp
The file was added/cfe/trunk/lib/AST/Interp/Program.hclang.src/lib/AST/Interp/Program.h
The file was added/cfe/trunk/lib/AST/Interp/Record.cppclang.src/lib/AST/Interp/Record.cpp
The file was added/cfe/trunk/lib/AST/Interp/Record.hclang.src/lib/AST/Interp/Record.h
The file was added/cfe/trunk/lib/AST/Interp/Source.cppclang.src/lib/AST/Interp/Source.cpp
The file was added/cfe/trunk/lib/AST/Interp/Source.hclang.src/lib/AST/Interp/Source.h
The file was added/cfe/trunk/lib/AST/Interp/State.cppclang.src/lib/AST/Interp/State.cpp
The file was added/cfe/trunk/lib/AST/Interp/State.hclang.src/lib/AST/Interp/State.h
The file was added/cfe/trunk/lib/AST/Interp/Type.cppclang.src/lib/AST/Interp/Type.cpp
The file was added/cfe/trunk/lib/AST/Interp/Type.hclang.src/lib/AST/Interp/Type.h
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cpp (diff)clang.src/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/lib/Frontend/CompilerInvocation.cpp (diff)clang.src/lib/Frontend/CompilerInvocation.cpp
The file was added/cfe/trunk/test/AST/Interpclang.src/test/AST/Interp
The file was added/cfe/trunk/test/AST/Interp/cond.cppclang.src/test/AST/Interp/cond.cpp
The file was modified/cfe/trunk/test/SemaCXX/constant-expression-cxx2a.cpp (diff)clang.src/test/SemaCXX/constant-expression-cxx2a.cpp
The file was modified/cfe/trunk/test/SemaCXX/constexpr-many-arguments.cpp (diff)clang.src/test/SemaCXX/constexpr-many-arguments.cpp
The file was modified/cfe/trunk/test/SemaCXX/shift.cpp (diff)clang.src/test/SemaCXX/shift.cpp
The file was modified/cfe/trunk/utils/TableGen/CMakeLists.txt (diff)clang.src/utils/TableGen/CMakeLists.txt
The file was added/cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cppclang.src/utils/TableGen/ClangOpcodesEmitter.cpp
The file was modified/cfe/trunk/utils/TableGen/TableGen.cpp (diff)clang.src/utils/TableGen/TableGen.cpp
The file was modified/cfe/trunk/utils/TableGen/TableGenBackends.h (diff)clang.src/utils/TableGen/TableGenBackends.h
The file was modified/llvm/trunk/utils/gn/secondary/clang/lib/AST/BUILD.gn (diff)llvm.src/utils/gn/secondary/clang/lib/AST/BUILD.gn
The file was added/llvm/trunk/utils/gn/secondary/clang/lib/AST/Interpllvm.src/utils/gn/secondary/clang/lib/AST/Interp
The file was added/llvm/trunk/utils/gn/secondary/clang/lib/AST/Interp/BUILD.gnllvm.src/utils/gn/secondary/clang/lib/AST/Interp/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/clang/utils/TableGen/BUILD.gn (diff)llvm.src/utils/gn/secondary/clang/utils/TableGen/BUILD.gn
Revision 370583 by rksimon:
[X86ISelLowering] combineCMov - cleanup CMOV->LEA codegen. NFCI.

Only compute the diff once and we don't need the truncation code (assert the bitwidth is correct just to be safe).
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 370581 by rksimon:
[X86ISelLowering] LowerSELECT - remove duplicate value type. NFCI.

VT of SELECT result and selection ops will be the same.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 370580 by rksimon:
Fix cppcheck shadow variable and variable scope warnings. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp (diff)llvm.src/lib/Transforms/Vectorize/SLPVectorizer.cpp
Revision 370578 by deadalnix:
[DAGCombiner] Match (add X, X) as (shl X, 1) when detecting rotate.

Summary: The combiner transforms (shl X, 1) into (add X, X).

Reviewers: craig.topper, efriedma, RKSimon, lebedev.ri

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D66882
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/rotate-extract-vector.ll (diff)llvm.src/test/CodeGen/X86/rotate-extract-vector.ll
The file was modified/llvm/trunk/test/CodeGen/X86/rotate-extract.ll (diff)llvm.src/test/CodeGen/X86/rotate-extract.ll
Revision 370577 by maskray:
[llvm-objcopy] Simplify alignToAddr with llvm::alignTo
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-objcopy/ELF/Object.cpp (diff)llvm.src/tools/llvm-objcopy/ELF/Object.cpp
Revision 370576 by jamesm:
[DAGCombiner] Don't create illegal narrow stores

Narrowing stores when the target doesn't support the narrow version
forces the target to expand into a load-modify-store sequence, which
is highly suboptimal. The information narrowing throws away (legality
of the inverse transform) is hard to re-analyze. If the target doesn't
support a store of the narrow type, don't narrow even in pre-legalize
mode.

No test as this is DAGCombiner and depends on target bits.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Revision 370575 by nikic:
[LVI] Extract solveBlockValueExtractValue(); NFC

Extract this method in preparation for additional extractvalue
support.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/LazyValueInfo.cpp (diff)llvm.src/lib/Analysis/LazyValueInfo.cpp
Revision 370574 by nikic:
[CVP] Add tests for simplified with.overflow + icmp; NFC

These tests are based on D19867.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/CorrelatedValuePropagation/overflows.ll (diff)llvm.src/test/Transforms/CorrelatedValuePropagation/overflows.ll
Revision 370573 by nikic:
[CVP] Generate simpler code for elided with.overflow intrinsics

Use a { iN undef, i1 false } struct as the base, and only insert
the first operand, instead of using { iN undef, i1 undef } as the
base and inserting both. This is the same as what we do in InstCombine.

Differential Revision: https://reviews.llvm.org/D67034
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp (diff)llvm.src/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
The file was modified/llvm/trunk/test/Transforms/CorrelatedValuePropagation/overflows.ll (diff)llvm.src/test/Transforms/CorrelatedValuePropagation/overflows.ll
Revision 370569 by bjope:
[CodeGen] Refactor DAGTypeLegalizer::ExpandIntRes_MULFIX. NFC

Restructured the code a little bit in preparation for adding
UMULFIXSAT. I think it will be easier to understand the code
if not interleaving the codegen for signed/unsigned/saturated
cases that much.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
Revision 370566 by bjope:
[LangRef] Update saturating examples for llvm.smul.fix.sat. NFC

Some saturation examples for llvm.smul.fix.sat were not showing
the correct result. I've adjusted the operands to make sure that
we actually trigger overflow in those examples.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/LangRef.rst (diff)llvm.src/docs/LangRef.rst
Revision 370564 by wmi:
Fix some errors introduced by rL370563 which were not exposed on my local machine.
1. zlib::compress accept &size_t but the param is an uint64_t.
2. Some systems don't have zlib installed. Don't use compression by default.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ProfileData/SampleProf.h (diff)llvm.src/include/llvm/ProfileData/SampleProf.h
The file was modified/llvm/trunk/lib/ProfileData/SampleProf.cpp (diff)llvm.src/lib/ProfileData/SampleProf.cpp
The file was modified/llvm/trunk/tools/llvm-profdata/llvm-profdata.cpp (diff)llvm.src/tools/llvm-profdata/llvm-profdata.cpp
Revision 370563 by wmi:
[SampleFDO] Add profile symbol list section to discriminate function being
cold versus function being newly added.

This is the second half of https://reviews.llvm.org/D66374.

Profile symbol list is the collection of function symbols showing up in
the binary which generates the current profile. It is used to discriminate
function being cold versus function being newly added. Profile symbol list
is only added for profile with ExtBinary format.

During profile use compilation, when profile-sample-accurate is enabled,
a function without profile will be regarded as cold only when it is
contained in that list.

Differential Revision: https://reviews.llvm.org/D66766
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ProfileData/SampleProf.h (diff)llvm.src/include/llvm/ProfileData/SampleProf.h
The file was modified/llvm/trunk/include/llvm/ProfileData/SampleProfReader.h (diff)llvm.src/include/llvm/ProfileData/SampleProfReader.h
The file was modified/llvm/trunk/include/llvm/ProfileData/SampleProfWriter.h (diff)llvm.src/include/llvm/ProfileData/SampleProfWriter.h
The file was modified/llvm/trunk/lib/ProfileData/SampleProf.cpp (diff)llvm.src/lib/ProfileData/SampleProf.cpp
The file was modified/llvm/trunk/lib/ProfileData/SampleProfReader.cpp (diff)llvm.src/lib/ProfileData/SampleProfReader.cpp
The file was modified/llvm/trunk/lib/ProfileData/SampleProfWriter.cpp (diff)llvm.src/lib/ProfileData/SampleProfWriter.cpp
The file was modified/llvm/trunk/lib/Transforms/IPO/SampleProfile.cpp (diff)llvm.src/lib/Transforms/IPO/SampleProfile.cpp
The file was added/llvm/trunk/test/Transforms/SampleProfile/Inputs/profile-symbol-list.llllvm.src/test/Transforms/SampleProfile/Inputs/profile-symbol-list.ll
The file was added/llvm/trunk/test/Transforms/SampleProfile/Inputs/profile-symbol-list.textllvm.src/test/Transforms/SampleProfile/Inputs/profile-symbol-list.text
The file was added/llvm/trunk/test/Transforms/SampleProfile/compressed-profile-symbol-list.llllvm.src/test/Transforms/SampleProfile/compressed-profile-symbol-list.ll
The file was added/llvm/trunk/test/Transforms/SampleProfile/uncompressed-profile-symbol-list.llllvm.src/test/Transforms/SampleProfile/uncompressed-profile-symbol-list.ll
The file was added/llvm/trunk/test/tools/llvm-profdata/Inputs/profile-symbol-list-1.textllvm.src/test/tools/llvm-profdata/Inputs/profile-symbol-list-1.text
The file was added/llvm/trunk/test/tools/llvm-profdata/Inputs/profile-symbol-list-2.textllvm.src/test/tools/llvm-profdata/Inputs/profile-symbol-list-2.text
The file was added/llvm/trunk/test/tools/llvm-profdata/Inputs/profile-symbol-list.expectedllvm.src/test/tools/llvm-profdata/Inputs/profile-symbol-list.expected
The file was added/llvm/trunk/test/tools/llvm-profdata/profile-symbol-list.testllvm.src/test/tools/llvm-profdata/profile-symbol-list.test
The file was modified/llvm/trunk/tools/llvm-profdata/llvm-profdata.cpp (diff)llvm.src/tools/llvm-profdata/llvm-profdata.cpp
The file was modified/llvm/trunk/unittests/ProfileData/SampleProfTest.cpp (diff)llvm.src/unittests/ProfileData/SampleProfTest.cpp
Revision 370562 by arphaman:
Introduce a DirectoryEntryRef that stores both a reference and an
accessed name to the directory entry

This commit introduces a parallel API that returns a DirectoryEntryRef
to the FileManager, similar to the parallel FileEntryRef API. All
uses will have to be update in follow-up patches. The immediate use of the new API in this
patch fixes the issue where a file manager was reused in clang-scan-deps,
but reported an different file path whenever a framework lookup was done through a symlink.

Differential Revision: https://reviews.llvm.org/D67026
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/FileManager.h (diff)clang.src/include/clang/Basic/FileManager.h
The file was modified/cfe/trunk/include/clang/Lex/DirectoryLookup.h (diff)clang.src/include/clang/Lex/DirectoryLookup.h
The file was modified/cfe/trunk/lib/Basic/FileManager.cpp (diff)clang.src/lib/Basic/FileManager.cpp
The file was modified/cfe/trunk/lib/Frontend/InitHeaderSearch.cpp (diff)clang.src/lib/Frontend/InitHeaderSearch.cpp
The file was modified/cfe/trunk/lib/Lex/HeaderSearch.cpp (diff)clang.src/lib/Lex/HeaderSearch.cpp
The file was modified/cfe/trunk/lib/Lex/PPDirectives.cpp (diff)clang.src/lib/Lex/PPDirectives.cpp
The file was modified/cfe/trunk/test/ClangScanDeps/Inputs/subframework_header_dir_symlink_cdb.json (diff)clang.src/test/ClangScanDeps/Inputs/subframework_header_dir_symlink_cdb.json
The file was modified/cfe/trunk/test/ClangScanDeps/subframework_header_dir_symlink.m (diff)clang.src/test/ClangScanDeps/subframework_header_dir_symlink.m
The file was modified/cfe/trunk/unittests/Lex/HeaderSearchTest.cpp (diff)clang.src/unittests/Lex/HeaderSearchTest.cpp
The file was modified/cfe/trunk/unittests/Lex/PPCallbacksTest.cpp (diff)clang.src/unittests/Lex/PPCallbacksTest.cpp
Revision 370559 by dblaikie:
llvm-dwarfdump: Cache CU low_pc when computing statistics.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-dwarfdump/Statistics.cpp (diff)llvm.src/tools/llvm-dwarfdump/Statistics.cpp
Revision 370558 by rsmith:
[c++20] Add support for designated direct-list-initialization syntax.

This completes the implementation of P0329R4.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/Expr.h (diff)clang.src/include/clang/AST/Expr.h
The file was modified/cfe/trunk/include/clang/Sema/Sema.h (diff)clang.src/include/clang/Sema/Sema.h
The file was modified/cfe/trunk/lib/Parse/ParseInit.cpp (diff)clang.src/lib/Parse/ParseInit.cpp
The file was modified/cfe/trunk/lib/Sema/SemaInit.cpp (diff)clang.src/lib/Sema/SemaInit.cpp
The file was added/cfe/trunk/test/Parser/cxx2a-designated-init.cppclang.src/test/Parser/cxx2a-designated-init.cpp
The file was modified/cfe/trunk/www/cxx_status.html (diff)clang.src/www/cxx_status.html
Revision 370556 by tlively:
[WebAssembly] Add SIMD QFMA/QFMS

Summary:
Adds clang builtins and LLVM intrinsics for these experimental
instructions. They are not implemented in engines yet, but that is ok
because the user must opt into using them by calling the builtins.

Reviewers: aheejin, dschuff

Reviewed By: aheejin

Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D67020
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsWebAssembly.def (diff)clang.src/include/clang/Basic/BuiltinsWebAssembly.def
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cpp (diff)clang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/test/CodeGen/builtins-wasm.c (diff)clang.src/test/CodeGen/builtins-wasm.c
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsWebAssembly.td (diff)llvm.src/include/llvm/IR/IntrinsicsWebAssembly.td
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/simd-intrinsics.ll (diff)llvm.src/test/CodeGen/WebAssembly/simd-intrinsics.ll
The file was modified/llvm/trunk/test/MC/WebAssembly/simd-encodings.s (diff)llvm.src/test/MC/WebAssembly/simd-encodings.s
Revision 370555 by rsmith:
[c++20] Disallow template argument deduction from a braced-init-list
containing designators. The C++20 wording doesn't actually say what
happens in this case, but treating this as a non-deduced context seems
like the most natural behavior.

(We might want to consider deducing through array designators as an
extension in the future, but will need to be careful to deduce the array
bound properly if we do so. That's not permitted herein.)
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp (diff)clang.src/lib/Sema/SemaTemplateDeduction.cpp
The file was modified/cfe/trunk/test/SemaCXX/cxx0x-initializer-stdinitializerlist.cpp (diff)clang.src/test/SemaCXX/cxx0x-initializer-stdinitializerlist.cpp
The file was modified/cfe/trunk/test/SemaTemplate/deduction.cpp (diff)clang.src/test/SemaTemplate/deduction.cpp
Revision 370553 by saugustine:
Revert "Add gdb pretty printers for a wide variety of libc++ data structures."

This reverts commit d8c9f2f572fe06a34ccfc28ee9223b64d7d275d3.
Change TypePath in RepositoryPath in Workspace
The file was removed/libcxx/trunk/test/pretty_printerslibcxx.src/test/pretty_printers
The file was removed/libcxx/trunk/utils/gdblibcxx.src/utils/gdb
Revision 370551 by saugustine:
Add gdb pretty printers for a wide variety of libc++ data structures.

Summary: Also add a test suite.

Reviewers: EricWF

Subscribers: christof, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D65609

Run a pep8 formatter.

Run pep8 formatter.

Convert to PEP8, address other comments from code review.
Change TypePath in RepositoryPath in Workspace
The file was added/libcxx/trunk/test/pretty_printerslibcxx.src/test/pretty_printers
The file was added/libcxx/trunk/test/pretty_printers/gdb_pretty_printer_test.pylibcxx.src/test/pretty_printers/gdb_pretty_printer_test.py
The file was added/libcxx/trunk/test/pretty_printers/gdb_pretty_printer_test.sh.cpplibcxx.src/test/pretty_printers/gdb_pretty_printer_test.sh.cpp
The file was added/libcxx/trunk/utils/gdblibcxx.src/utils/gdb
The file was added/libcxx/trunk/utils/gdb/libcxxlibcxx.src/utils/gdb/libcxx
The file was added/libcxx/trunk/utils/gdb/libcxx/printers.pylibcxx.src/utils/gdb/libcxx/printers.py
Revision 370549 by Jonas Devlieghere:
[lit] Only set DYLD_LIBRARY_PATH for shared builds

In r370135 I committed a temporary workaround for the sanitized bot to
not set (DY)LD_LIBRARY_PATH when (DY)LD_INSERT_LIBRARIES was set.
Setting (DY)LD_LIBRARY_PATH is only necessary for (standalone)
shared-library builds, so a better solution is to only set the
environment variable when necessary.

Differential revision: https://reviews.llvm.org/D67012
Change TypePath in RepositoryPath in Workspace
The file was modified/lldb/trunk/lit/CMakeLists.txt (diff)N/A
The file was modified/lldb/trunk/lit/Suite/lit.cfg (diff)N/A
The file was modified/lldb/trunk/lit/Suite/lit.site.cfg.in (diff)N/A
The file was modified/llvm/trunk/cmake/modules/LLVMConfig.cmake.in (diff)llvm.src/cmake/modules/LLVMConfig.cmake.in
Revision 370548 by asbirlea:
[MemorySSA] Rename all phi entries.

When renaming Phis incoming values, there may be multiple edges incoming
from the same block (switch). Rename all.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/MemorySSA.cpp (diff)llvm.src/lib/Analysis/MemorySSA.cpp
The file was added/llvm/trunk/test/Analysis/MemorySSA/renamephis.llllvm.src/test/Analysis/MemorySSA/renamephis.ll
Revision 370547 by wmi:
[GVN] Verify value equality before doing phi translation for call instruction

This is an updated version of https://reviews.llvm.org/D66909 to fix PR42605.

Basically, current phi translatation translates an old value number to an new
value number for a call instruction based on the literal equality of call
expression, without verifying there is no clobber in between. This is incorrect.

To get a finegrain check, use MachineDependence analysis to do the job. However,
this is still not ideal. Although given a call instruction,
`MemoryDependenceResults::getCallDependencyFrom` returns identical call
instructions without clobber in between using MemDepResult with its DepType to
be `Def`. However, identical is too strict here and we want it to be relaxed a
little to consider phi-translation -- callee is the same, param operands can be
different. That means changing the semantic of `MemDepResult::Def` and I don't
know the potential impact.

So currently the patch is still conservative to only handle
MemDepResult::NonFuncLocal, which means the current call has no function local
clobber. If there is clobber, even if the clobber doesn't stand in between the
current call and the call with the new value, we won't do phi-translate.

Differential Revision: https://reviews.llvm.org/D67013
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Transforms/Scalar/GVN.h (diff)llvm.src/include/llvm/Transforms/Scalar/GVN.h
The file was modified/llvm/trunk/lib/Transforms/Scalar/GVN.cpp (diff)llvm.src/lib/Transforms/Scalar/GVN.cpp
The file was added/llvm/trunk/test/Transforms/GVN/pr42605.llllvm.src/test/Transforms/GVN/pr42605.ll
Revision 370546 by Duncan P. N. Exon Smith:
ASTReader: Bypass overridden files when reading PCHs

If contents of a file that is part of a PCM are overridden when reading
it, but weren't overridden when the PCM was being built, the ASTReader
will emit an error.  Now it creates a separate FileEntry for recovery,
bypassing the overridden content instead of discarding it.  The
pre-existing testcase clang/test/PCH/remap-file-from-pch.cpp confirms
that the new recovery method works correctly.

This resolves a long-standing FIXME to avoid hypothetically invalidating
another precompiled module that's already using the overridden contents.

This also removes ContentCache-related API that would be unsafe to use
across `CompilerInstance`s in an implicit modules build.  This helps to
unblock us sinking it from SourceManager into FileManager in the future,
which would allow us to delete `InMemoryModuleCache`.

https://reviews.llvm.org/D66710
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/FileManager.h (diff)clang.src/include/clang/Basic/FileManager.h
The file was modified/cfe/trunk/include/clang/Basic/SourceManager.h (diff)clang.src/include/clang/Basic/SourceManager.h
The file was modified/cfe/trunk/lib/Basic/FileManager.cpp (diff)clang.src/lib/Basic/FileManager.cpp
The file was modified/cfe/trunk/lib/Basic/SourceManager.cpp (diff)clang.src/lib/Basic/SourceManager.cpp
The file was modified/cfe/trunk/lib/Serialization/ASTReader.cpp (diff)clang.src/lib/Serialization/ASTReader.cpp
The file was modified/cfe/trunk/unittests/Basic/FileManagerTest.cpp (diff)clang.src/unittests/Basic/FileManagerTest.cpp
Revision 370544 by rsmith:
[c++20] Implement semantic restrictions for C++20 designated
initializers.

This has some interesting interactions with our existing extensions to
support C99 designated initializers as an extension in C++. Those are
resolved as follows:

* We continue to permit the full breadth of C99 designated initializers
   in C++, with the exception that we disallow a partial overwrite of an
   initializer with a non-trivially-destructible type. (Full overwrite
   is OK, because we won't run the first initializer at all.)

* The C99 extensions are disallowed in SFINAE contexts and during
   overload resolution, where they could change the meaning of valid
   programs.

* C++20 disallows reordering of initializers. We only check for that for
   the simple cases that the C++20 rules permit (designators of the form
   '.field_name =' and continue to allow reordering in other cases).
   It would be nice to improve this behavior in future.

* All C99 designated initializer extensions produce a warning by
   default in C++20 mode. People are going to learn the C++ rules based
   on what Clang diagnoses, so it's important we diagnose these properly
   by default.

* In C++ <= 17, we apply the C++20 rules rather than the C99 rules, and
   so still diagnose C99 extensions as described above. We continue to
   accept designated C++20-compatible initializers in C++ <= 17 silently
   by default (but naturally still reject under -pedantic-errors).

This is not a complete implementation of P0329R4. In particular, that
paper introduces new non-C99-compatible syntax { .field { init } }, and
we do not support that yet.

This is based on a previous patch by Don Hinton, though I've made
substantial changes when addressing the above interactions.

Differential Revision: https://reviews.llvm.org/D59754
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticGroups.td (diff)clang.src/include/clang/Basic/DiagnosticGroups.td
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (diff)clang.src/include/clang/Basic/DiagnosticSemaKinds.td
The file was modified/cfe/trunk/include/clang/Sema/Sema.h (diff)clang.src/include/clang/Sema/Sema.h
The file was modified/cfe/trunk/lib/Sema/SemaExpr.cpp (diff)clang.src/lib/Sema/SemaExpr.cpp
The file was modified/cfe/trunk/lib/Sema/SemaInit.cpp (diff)clang.src/lib/Sema/SemaInit.cpp
The file was modified/cfe/trunk/lib/Sema/SemaOverload.cpp (diff)clang.src/lib/Sema/SemaOverload.cpp
The file was modified/cfe/trunk/lib/Sema/TreeTransform.h (diff)clang.src/lib/Sema/TreeTransform.h
The file was modified/cfe/trunk/test/Analysis/globals.cpp (diff)clang.src/test/Analysis/globals.cpp
The file was modified/cfe/trunk/test/CXX/expr/expr.const/p2-0x.cpp (diff)clang.src/test/CXX/expr/expr.const/p2-0x.cpp
The file was modified/cfe/trunk/test/CodeGenObjCXX/designated-initializers.mm (diff)clang.src/test/CodeGenObjCXX/designated-initializers.mm
The file was modified/cfe/trunk/test/PCH/cxx1y-default-initializer.cpp (diff)clang.src/test/PCH/cxx1y-default-initializer.cpp
The file was modified/cfe/trunk/test/Parser/cxx0x-lambda-expressions.cpp (diff)clang.src/test/Parser/cxx0x-lambda-expressions.cpp
The file was modified/cfe/trunk/test/Parser/objc-init.m (diff)clang.src/test/Parser/objc-init.m
The file was modified/cfe/trunk/test/Sema/designated-initializers.c (diff)clang.src/test/Sema/designated-initializers.c
The file was modified/cfe/trunk/test/Sema/static-assert.c (diff)clang.src/test/Sema/static-assert.c
The file was modified/cfe/trunk/test/SemaCXX/aggregate-initialization.cpp (diff)clang.src/test/SemaCXX/aggregate-initialization.cpp
The file was modified/cfe/trunk/test/SemaCXX/c99.cpp (diff)clang.src/test/SemaCXX/c99.cpp
The file was modified/cfe/trunk/test/SemaCXX/constant-expression-cxx11.cpp (diff)clang.src/test/SemaCXX/constant-expression-cxx11.cpp
The file was modified/cfe/trunk/test/SemaCXX/constexpr-printing.cpp (diff)clang.src/test/SemaCXX/constexpr-printing.cpp
The file was modified/cfe/trunk/test/SemaCXX/cxx0x-initializer-constructor.cpp (diff)clang.src/test/SemaCXX/cxx0x-initializer-constructor.cpp
The file was modified/cfe/trunk/test/SemaCXX/cxx2a-initializer-aggregates.cpp (diff)clang.src/test/SemaCXX/cxx2a-initializer-aggregates.cpp
The file was modified/cfe/trunk/test/SemaCXX/decltype.cpp (diff)clang.src/test/SemaCXX/decltype.cpp
The file was modified/cfe/trunk/test/SemaCXX/designated-initializers-base-class.cpp (diff)clang.src/test/SemaCXX/designated-initializers-base-class.cpp
The file was modified/cfe/trunk/test/SemaCXX/designated-initializers.cpp (diff)clang.src/test/SemaCXX/designated-initializers.cpp
The file was modified/cfe/trunk/test/SemaCXX/eval-crashes.cpp (diff)clang.src/test/SemaCXX/eval-crashes.cpp
The file was modified/cfe/trunk/test/SemaCXX/member-init.cpp (diff)clang.src/test/SemaCXX/member-init.cpp
The file was modified/cfe/trunk/test/SemaObjCXX/message.mm (diff)clang.src/test/SemaObjCXX/message.mm
The file was modified/cfe/trunk/test/SemaTemplate/instantiate-c99.cpp (diff)clang.src/test/SemaTemplate/instantiate-c99.cpp
The file was modified/cfe/trunk/test/SemaTemplate/instantiate-init.cpp (diff)clang.src/test/SemaTemplate/instantiate-init.cpp
Revision 370543 by rnk:
Fix SEH_NoReturn machine verifier error
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrInfo.td (diff)llvm.src/lib/Target/X86/X86InstrInfo.td
Revision 370540 by rnk:
[MC] Avoid crashes from improperly nested or wrong target .seh_handlerdata directives
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/MC/MCAsmStreamer.cpp (diff)llvm.src/lib/MC/MCAsmStreamer.cpp
The file was modified/llvm/trunk/lib/MC/MCParser/COFFAsmParser.cpp (diff)llvm.src/lib/MC/MCParser/COFFAsmParser.cpp
The file was modified/llvm/trunk/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp (diff)llvm.src/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
The file was modified/llvm/trunk/test/MC/AsmParser/seh-directive-errors.s (diff)llvm.src/test/MC/AsmParser/seh-directive-errors.s
Revision 370535 by nand:
Revert [Clang Interpreter] Initial patch for the constexpr interpreter

This reverts r370531 (git commit d4c1002e0bbbbab50f6891cdd2f5bd3a8f3a3584)
Change TypePath in RepositoryPath in Workspace
The file was removed/cfe/trunk/docs/ConstantInterpreter.rstclang.src/docs/ConstantInterpreter.rst
The file was modified/cfe/trunk/docs/index.rst (diff)clang.src/docs/index.rst
The file was modified/cfe/trunk/include/clang/AST/ASTContext.h (diff)clang.src/include/clang/AST/ASTContext.h
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticASTKinds.td (diff)clang.src/include/clang/Basic/DiagnosticASTKinds.td
The file was modified/cfe/trunk/include/clang/Basic/LangOptions.def (diff)clang.src/include/clang/Basic/LangOptions.def
The file was removed/cfe/trunk/include/clang/Basic/OptionalDiagnostic.hclang.src/include/clang/Basic/OptionalDiagnostic.h
The file was modified/cfe/trunk/include/clang/Driver/Options.td (diff)clang.src/include/clang/Driver/Options.td
The file was modified/cfe/trunk/lib/AST/ASTContext.cpp (diff)clang.src/lib/AST/ASTContext.cpp
The file was modified/cfe/trunk/lib/AST/CMakeLists.txt (diff)clang.src/lib/AST/CMakeLists.txt
The file was modified/cfe/trunk/lib/AST/ExprConstant.cpp (diff)clang.src/lib/AST/ExprConstant.cpp
The file was removed/cfe/trunk/lib/AST/Interpclang.src/lib/AST/Interp
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cpp (diff)clang.src/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/lib/Frontend/CompilerInvocation.cpp (diff)clang.src/lib/Frontend/CompilerInvocation.cpp
The file was removed/cfe/trunk/test/AST/Interpclang.src/test/AST/Interp
The file was modified/cfe/trunk/test/SemaCXX/constant-expression-cxx2a.cpp (diff)clang.src/test/SemaCXX/constant-expression-cxx2a.cpp
The file was modified/cfe/trunk/test/SemaCXX/constexpr-many-arguments.cpp (diff)clang.src/test/SemaCXX/constexpr-many-arguments.cpp
The file was modified/cfe/trunk/test/SemaCXX/shift.cpp (diff)clang.src/test/SemaCXX/shift.cpp
The file was modified/cfe/trunk/utils/TableGen/CMakeLists.txt (diff)clang.src/utils/TableGen/CMakeLists.txt
The file was removed/cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cppclang.src/utils/TableGen/ClangOpcodesEmitter.cpp
The file was modified/cfe/trunk/utils/TableGen/TableGen.cpp (diff)clang.src/utils/TableGen/TableGen.cpp
The file was modified/cfe/trunk/utils/TableGen/TableGenBackends.h (diff)clang.src/utils/TableGen/TableGenBackends.h
Revision 370533 by rnk:
[X86] Print register names in .seh_* directives

Also improve assembler parser register validation for .seh_ directives.
This requires moving X86-specific seh directive handling into the x86
backend, which addresses some assembler FIXMEs.

Differential Revision: https://reviews.llvm.org/D66625
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/MC/MCStreamer.h (diff)llvm.src/include/llvm/MC/MCStreamer.h
The file was modified/llvm/trunk/lib/MC/MCAsmStreamer.cpp (diff)llvm.src/lib/MC/MCAsmStreamer.cpp
The file was modified/llvm/trunk/lib/MC/MCParser/COFFAsmParser.cpp (diff)llvm.src/lib/MC/MCParser/COFFAsmParser.cpp
The file was modified/llvm/trunk/lib/MC/MCStreamer.cpp (diff)llvm.src/lib/MC/MCStreamer.cpp
The file was modified/llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp (diff)llvm.src/lib/Target/X86/AsmParser/X86AsmParser.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86MCInstLower.cpp (diff)llvm.src/lib/Target/X86/X86MCInstLower.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-regcall-Mask.ll (diff)llvm.src/test/CodeGen/X86/avx512-regcall-Mask.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-regcall-NoMask.ll (diff)llvm.src/test/CodeGen/X86/avx512-regcall-NoMask.ll
The file was modified/llvm/trunk/test/CodeGen/X86/catchpad-realign-savexmm.ll (diff)llvm.src/test/CodeGen/X86/catchpad-realign-savexmm.ll
The file was modified/llvm/trunk/test/CodeGen/X86/cleanuppad-realign.ll (diff)llvm.src/test/CodeGen/X86/cleanuppad-realign.ll
The file was modified/llvm/trunk/test/CodeGen/X86/conditional-tailcall.ll (diff)llvm.src/test/CodeGen/X86/conditional-tailcall.ll
The file was modified/llvm/trunk/test/CodeGen/X86/gcc_except_table.ll (diff)llvm.src/test/CodeGen/X86/gcc_except_table.ll
The file was modified/llvm/trunk/test/CodeGen/X86/localescape.ll (diff)llvm.src/test/CodeGen/X86/localescape.ll
The file was modified/llvm/trunk/test/CodeGen/X86/musttail-varargs.ll (diff)llvm.src/test/CodeGen/X86/musttail-varargs.ll
The file was modified/llvm/trunk/test/CodeGen/X86/seh-catchpad.ll (diff)llvm.src/test/CodeGen/X86/seh-catchpad.ll
The file was modified/llvm/trunk/test/CodeGen/X86/win-catchpad-csrs.ll (diff)llvm.src/test/CodeGen/X86/win-catchpad-csrs.ll
The file was modified/llvm/trunk/test/CodeGen/X86/win-catchpad.ll (diff)llvm.src/test/CodeGen/X86/win-catchpad.ll
The file was modified/llvm/trunk/test/CodeGen/X86/win-funclet-cfi.ll (diff)llvm.src/test/CodeGen/X86/win-funclet-cfi.ll
The file was modified/llvm/trunk/test/CodeGen/X86/win64-funclet-savexmm.ll (diff)llvm.src/test/CodeGen/X86/win64-funclet-savexmm.ll
The file was modified/llvm/trunk/test/CodeGen/X86/win64_eh.ll (diff)llvm.src/test/CodeGen/X86/win64_eh.ll
The file was modified/llvm/trunk/test/CodeGen/X86/win64_frame.ll (diff)llvm.src/test/CodeGen/X86/win64_frame.ll
The file was modified/llvm/trunk/test/CodeGen/X86/x86-64-flags-intrinsics.ll (diff)llvm.src/test/CodeGen/X86/x86-64-flags-intrinsics.ll
The file was modified/llvm/trunk/test/MC/AsmParser/directive_seh.s (diff)llvm.src/test/MC/AsmParser/directive_seh.s
The file was modified/llvm/trunk/test/MC/AsmParser/seh-directive-errors.s (diff)llvm.src/test/MC/AsmParser/seh-directive-errors.s
The file was modified/llvm/trunk/test/MC/COFF/seh-align3.s (diff)llvm.src/test/MC/COFF/seh-align3.s
The file was modified/llvm/trunk/test/MC/COFF/seh-linkonce.s (diff)llvm.src/test/MC/COFF/seh-linkonce.s
The file was modified/llvm/trunk/test/MC/COFF/seh.s (diff)llvm.src/test/MC/COFF/seh.s
The file was modified/llvm/trunk/test/tools/llvm-objdump/Inputs/win64-unwind.exe.coff-x86_64.asm (diff)llvm.src/test/tools/llvm-objdump/Inputs/win64-unwind.exe.coff-x86_64.asm
Revision 370531 by nand:
[Clang Interpreter] Initial patch for the constexpr interpreter

Summary:
This patch introduces the skeleton of the constexpr interpreter,
capable of evaluating a simple constexpr functions consisting of
if statements. The interpreter is described in more detail in the
RFC. Further patches will add more features.

Reviewers: Bigcheese, jfb, rsmith

Subscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64146
Change TypePath in RepositoryPath in Workspace
The file was added/cfe/trunk/docs/ConstantInterpreter.rstclang.src/docs/ConstantInterpreter.rst
The file was modified/cfe/trunk/docs/index.rst (diff)clang.src/docs/index.rst
The file was modified/cfe/trunk/include/clang/AST/ASTContext.h (diff)clang.src/include/clang/AST/ASTContext.h
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticASTKinds.td (diff)clang.src/include/clang/Basic/DiagnosticASTKinds.td
The file was modified/cfe/trunk/include/clang/Basic/LangOptions.def (diff)clang.src/include/clang/Basic/LangOptions.def
The file was added/cfe/trunk/include/clang/Basic/OptionalDiagnostic.hclang.src/include/clang/Basic/OptionalDiagnostic.h
The file was modified/cfe/trunk/include/clang/Driver/Options.td (diff)clang.src/include/clang/Driver/Options.td
The file was modified/cfe/trunk/lib/AST/ASTContext.cpp (diff)clang.src/lib/AST/ASTContext.cpp
The file was modified/cfe/trunk/lib/AST/CMakeLists.txt (diff)clang.src/lib/AST/CMakeLists.txt
The file was modified/cfe/trunk/lib/AST/ExprConstant.cpp (diff)clang.src/lib/AST/ExprConstant.cpp
The file was added/cfe/trunk/lib/AST/Interpclang.src/lib/AST/Interp
The file was added/cfe/trunk/lib/AST/Interp/Block.cppclang.src/lib/AST/Interp/Block.cpp
The file was added/cfe/trunk/lib/AST/Interp/Block.hclang.src/lib/AST/Interp/Block.h
The file was added/cfe/trunk/lib/AST/Interp/ByteCodeEmitter.cppclang.src/lib/AST/Interp/ByteCodeEmitter.cpp
The file was added/cfe/trunk/lib/AST/Interp/ByteCodeEmitter.hclang.src/lib/AST/Interp/ByteCodeEmitter.h
The file was added/cfe/trunk/lib/AST/Interp/ByteCodeExprGen.cppclang.src/lib/AST/Interp/ByteCodeExprGen.cpp
The file was added/cfe/trunk/lib/AST/Interp/ByteCodeExprGen.hclang.src/lib/AST/Interp/ByteCodeExprGen.h
The file was added/cfe/trunk/lib/AST/Interp/ByteCodeGenError.cppclang.src/lib/AST/Interp/ByteCodeGenError.cpp
The file was added/cfe/trunk/lib/AST/Interp/ByteCodeGenError.hclang.src/lib/AST/Interp/ByteCodeGenError.h
The file was added/cfe/trunk/lib/AST/Interp/ByteCodeStmtGen.cppclang.src/lib/AST/Interp/ByteCodeStmtGen.cpp
The file was added/cfe/trunk/lib/AST/Interp/ByteCodeStmtGen.hclang.src/lib/AST/Interp/ByteCodeStmtGen.h
The file was added/cfe/trunk/lib/AST/Interp/CMakeLists.txtclang.src/lib/AST/Interp/CMakeLists.txt
The file was added/cfe/trunk/lib/AST/Interp/Context.cppclang.src/lib/AST/Interp/Context.cpp
The file was added/cfe/trunk/lib/AST/Interp/Context.hclang.src/lib/AST/Interp/Context.h
The file was added/cfe/trunk/lib/AST/Interp/Descriptor.cppclang.src/lib/AST/Interp/Descriptor.cpp
The file was added/cfe/trunk/lib/AST/Interp/Descriptor.hclang.src/lib/AST/Interp/Descriptor.h
The file was added/cfe/trunk/lib/AST/Interp/Disasm.cppclang.src/lib/AST/Interp/Disasm.cpp
The file was added/cfe/trunk/lib/AST/Interp/EvalEmitter.cppclang.src/lib/AST/Interp/EvalEmitter.cpp
The file was added/cfe/trunk/lib/AST/Interp/EvalEmitter.hclang.src/lib/AST/Interp/EvalEmitter.h
The file was added/cfe/trunk/lib/AST/Interp/Frame.cppclang.src/lib/AST/Interp/Frame.cpp
The file was added/cfe/trunk/lib/AST/Interp/Frame.hclang.src/lib/AST/Interp/Frame.h
The file was added/cfe/trunk/lib/AST/Interp/Function.cppclang.src/lib/AST/Interp/Function.cpp
The file was added/cfe/trunk/lib/AST/Interp/Function.hclang.src/lib/AST/Interp/Function.h
The file was added/cfe/trunk/lib/AST/Interp/Integral.hclang.src/lib/AST/Interp/Integral.h
The file was added/cfe/trunk/lib/AST/Interp/Interp.cppclang.src/lib/AST/Interp/Interp.cpp
The file was added/cfe/trunk/lib/AST/Interp/Interp.hclang.src/lib/AST/Interp/Interp.h
The file was added/cfe/trunk/lib/AST/Interp/InterpFrame.cppclang.src/lib/AST/Interp/InterpFrame.cpp
The file was added/cfe/trunk/lib/AST/Interp/InterpFrame.hclang.src/lib/AST/Interp/InterpFrame.h
The file was added/cfe/trunk/lib/AST/Interp/InterpStack.cppclang.src/lib/AST/Interp/InterpStack.cpp
The file was added/cfe/trunk/lib/AST/Interp/InterpStack.hclang.src/lib/AST/Interp/InterpStack.h
The file was added/cfe/trunk/lib/AST/Interp/InterpState.cppclang.src/lib/AST/Interp/InterpState.cpp
The file was added/cfe/trunk/lib/AST/Interp/InterpState.hclang.src/lib/AST/Interp/InterpState.h
The file was added/cfe/trunk/lib/AST/Interp/Opcode.hclang.src/lib/AST/Interp/Opcode.h
The file was added/cfe/trunk/lib/AST/Interp/Opcodes.tdclang.src/lib/AST/Interp/Opcodes.td
The file was added/cfe/trunk/lib/AST/Interp/Pointer.cppclang.src/lib/AST/Interp/Pointer.cpp
The file was added/cfe/trunk/lib/AST/Interp/Pointer.hclang.src/lib/AST/Interp/Pointer.h
The file was added/cfe/trunk/lib/AST/Interp/Program.cppclang.src/lib/AST/Interp/Program.cpp
The file was added/cfe/trunk/lib/AST/Interp/Program.hclang.src/lib/AST/Interp/Program.h
The file was added/cfe/trunk/lib/AST/Interp/Record.cppclang.src/lib/AST/Interp/Record.cpp
The file was added/cfe/trunk/lib/AST/Interp/Record.hclang.src/lib/AST/Interp/Record.h
The file was added/cfe/trunk/lib/AST/Interp/Source.cppclang.src/lib/AST/Interp/Source.cpp
The file was added/cfe/trunk/lib/AST/Interp/Source.hclang.src/lib/AST/Interp/Source.h
The file was added/cfe/trunk/lib/AST/Interp/State.cppclang.src/lib/AST/Interp/State.cpp
The file was added/cfe/trunk/lib/AST/Interp/State.hclang.src/lib/AST/Interp/State.h
The file was added/cfe/trunk/lib/AST/Interp/Type.cppclang.src/lib/AST/Interp/Type.cpp
The file was added/cfe/trunk/lib/AST/Interp/Type.hclang.src/lib/AST/Interp/Type.h
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cpp (diff)clang.src/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/lib/Frontend/CompilerInvocation.cpp (diff)clang.src/lib/Frontend/CompilerInvocation.cpp
The file was added/cfe/trunk/test/AST/Interpclang.src/test/AST/Interp
The file was added/cfe/trunk/test/AST/Interp/cond.cppclang.src/test/AST/Interp/cond.cpp
The file was modified/cfe/trunk/test/SemaCXX/constant-expression-cxx2a.cpp (diff)clang.src/test/SemaCXX/constant-expression-cxx2a.cpp
The file was modified/cfe/trunk/test/SemaCXX/constexpr-many-arguments.cpp (diff)clang.src/test/SemaCXX/constexpr-many-arguments.cpp
The file was modified/cfe/trunk/test/SemaCXX/shift.cpp (diff)clang.src/test/SemaCXX/shift.cpp
The file was modified/cfe/trunk/utils/TableGen/CMakeLists.txt (diff)clang.src/utils/TableGen/CMakeLists.txt
The file was added/cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cppclang.src/utils/TableGen/ClangOpcodesEmitter.cpp
The file was modified/cfe/trunk/utils/TableGen/TableGen.cpp (diff)clang.src/utils/TableGen/TableGen.cpp
The file was modified/cfe/trunk/utils/TableGen/TableGenBackends.h (diff)clang.src/utils/TableGen/TableGenBackends.h
Revision 370529 by spatel:
[x86] add tests for shift-logic-shift; NFC
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/X86/shift-logic.llllvm.src/test/CodeGen/X86/shift-logic.ll
Revision 370528 by spatel:
[AArch64] add tests for shift-logic-shift; NFC
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/AArch64/shift-logic.llllvm.src/test/CodeGen/AArch64/shift-logic.ll
Revision 370527 by dsanders:
Make add_new_check.py's insertion of registerCheck<> match the sort order

Summary:
Following on from review comments in D65919 about the ordering
of the registerCheck<> calls. Sort based on the check name which might
be on the line after the registerCheck<>

Reviewers: aaron.ballman

Subscribers: cfe-commits, llvm-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D66505
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/add_new_check.py (diff)clang-tools-extra.src/clang-tidy/add_new_check.py
Revision 370525 by rnk:
[Windows] Disable TrapUnreachable for Win64, add SEH_NoReturn

Users have complained llvm.trap produce two ud2 instructions on Win64,
one for the trap, and one for unreachable. This change fixes that.

TrapUnreachable was added and enabled for Win64 in r206684 (April 2014)
to avoid poorly understood issues with the Windows unwinder.

There seem to be two major things in play:
- the unwinder
- C++ EH, _CxxFrameHandler3 & co

The unwinder disassembles forward from the return address to scan for
epilogues. Inserting a ud2 had the effect of stopping the unwinder, and
ensuring that it ran the EH personality function for the current frame.
However, it's not clear what the unwinder does when the return address
happens to be the last address of one function and the first address of
the next function.

The Visual C++ EH personality, _CxxFrameHandler3, needs to figure out
what the current EH state number is. It does this by consulting the
ip2state table, which maps from PC to state number. This seems to go
wrong when the return address is the last PC of the function or catch
funclet.

I'm not sure precisely which system is involved here, but in order to
address these real or hypothetical problems, I believe it is enough to
insert int3 after a call site if it would otherwise be the last
instruction in a function or funclet.  I was able to reproduce some
similar problems locally by arranging for a noreturn call to appear at
the end of a catch block immediately before an unrelated function, and I
confirmed that the problems go away when an extra trailing int3
instruction is added.

MSVC inserts int3 after every noreturn function call, but I believe it's
only necessary to do it if the call would be the last instruction. This
change inserts a pseudo instruction that expands to int3 if it is in the
last basic block of a function or funclet. I did what I could to run the
Microsoft compiler EH tests, and the ones I was able to run showed no
behavior difference before or after this change.

Differential Revision: https://reviews.llvm.org/D66980
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86FrameLowering.cpp (diff)llvm.src/lib/Target/X86/X86FrameLowering.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.h (diff)llvm.src/lib/Target/X86/X86ISelLowering.h
The file was modified/llvm/trunk/lib/Target/X86/X86InstrCompiler.td (diff)llvm.src/lib/Target/X86/X86InstrCompiler.td
The file was modified/llvm/trunk/lib/Target/X86/X86InstrInfo.td (diff)llvm.src/lib/Target/X86/X86InstrInfo.td
The file was modified/llvm/trunk/lib/Target/X86/X86MCInstLower.cpp (diff)llvm.src/lib/Target/X86/X86MCInstLower.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86TargetMachine.cpp (diff)llvm.src/lib/Target/X86/X86TargetMachine.cpp
The file was modified/llvm/trunk/test/CodeGen/WinEH/wineh-noret-cleanup.ll (diff)llvm.src/test/CodeGen/WinEH/wineh-noret-cleanup.ll
The file was modified/llvm/trunk/test/CodeGen/X86/br-fold.ll (diff)llvm.src/test/CodeGen/X86/br-fold.ll
The file was modified/llvm/trunk/test/CodeGen/X86/catchpad-lifetime.ll (diff)llvm.src/test/CodeGen/X86/catchpad-lifetime.ll
The file was modified/llvm/trunk/test/CodeGen/X86/catchpad-regmask.ll (diff)llvm.src/test/CodeGen/X86/catchpad-regmask.ll
The file was modified/llvm/trunk/test/CodeGen/X86/catchret-regmask.ll (diff)llvm.src/test/CodeGen/X86/catchret-regmask.ll
The file was modified/llvm/trunk/test/CodeGen/X86/empty-function.ll (diff)llvm.src/test/CodeGen/X86/empty-function.ll
The file was modified/llvm/trunk/test/CodeGen/X86/funclet-layout.ll (diff)llvm.src/test/CodeGen/X86/funclet-layout.ll
The file was added/llvm/trunk/test/CodeGen/X86/noreturn-call-win64.llllvm.src/test/CodeGen/X86/noreturn-call-win64.ll
The file was modified/llvm/trunk/test/CodeGen/X86/pr24374.ll (diff)llvm.src/test/CodeGen/X86/pr24374.ll
The file was modified/llvm/trunk/test/CodeGen/X86/trap.ll (diff)llvm.src/test/CodeGen/X86/trap.ll
The file was modified/llvm/trunk/test/CodeGen/X86/unreachable-trap.ll (diff)llvm.src/test/CodeGen/X86/unreachable-trap.ll
The file was modified/llvm/trunk/test/CodeGen/X86/win64_call_epi.ll (diff)llvm.src/test/CodeGen/X86/win64_call_epi.ll
The file was modified/llvm/trunk/test/CodeGen/X86/win64_eh.ll (diff)llvm.src/test/CodeGen/X86/win64_eh.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/local-variable-gap.ll (diff)llvm.src/test/DebugInfo/COFF/local-variable-gap.ll
Revision 370522 by zer0:
[IFS][NFC] llvm-ifs: Fixing build bot build break: revert r370517 and r370510.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-ifs/llvm-ifs.cpp (diff)llvm.src/tools/llvm-ifs/llvm-ifs.cpp
Revision 370518 by spatel:
[Thumb2] tighten CHECK lines in test; NFC

The sequence between the function call and the asm start
may change without affecting what this test is looking for,
but we should have a better idea about what that sequence
looks like.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/Thumb2/2010-03-15-AsmCCClobber.ll (diff)llvm.src/test/CodeGen/Thumb2/2010-03-15-AsmCCClobber.ll
Revision 370517 by zer0:
[IFS][NFC] llvm-ifs: Fixing build bot error due to commit conflicts.

r370510 and r370504

Again only on gcc.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-ifs/llvm-ifs.cpp (diff)llvm.src/tools/llvm-ifs/llvm-ifs.cpp
Revision 370516 by nico:
gn build: Merge r370512
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/clang-tools-extra/clang-tidy/llvm/BUILD.gn (diff)llvm.src/utils/gn/secondary/clang-tools-extra/clang-tidy/llvm/BUILD.gn
Revision 370515 by ctopper:
[X86] Fix mul test cases in avx512-broadcast-unfold.ll to not get canonicalized to fadd. Remove the fsub test cases which were also testing fadd.

Not sure how to prevent an fsub by constant getting turned into an fadd by negative constant.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-broadcast-unfold.ll (diff)llvm.src/test/CodeGen/X86/avx512-broadcast-unfold.ll
Revision 370512 by dsanders:
[clang-tidy] Add llvm-prefer-register-over-unsigned to clang-tidy

Summary:
This clang-tidy check is looking for unsigned integer variables whose initializer
starts with an implicit cast from llvm::Register and changes the type of the
variable to llvm::Register (dropping the llvm:: where possible).

Reviewers: arsenm, bogner

Subscribers: jholewinski, MatzeB, qcolombet, dschuff, jyknight, dylanmckay, sdardis, nemanjai, jvesely, wdng, nhaehnle, mgorny, sbc100, jgravelle-google, kristof.beyls, hiraditya, aheejin, kbarton, fedor.sergeev, javed.absar, asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, jrtc27, MaskRay, zzheng, edward-jones, atanasyan, rogfer01, MartinMosbeck, brucehoult, the_o, tpr, PkmX, jocewei, jsji, Petar.Avramovic, asbirlea, Jim, s.egerton, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D65919
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/llvm/CMakeLists.txt (diff)clang-tools-extra.src/clang-tidy/llvm/CMakeLists.txt
The file was modified/clang-tools-extra/trunk/clang-tidy/llvm/LLVMTidyModule.cpp (diff)clang-tools-extra.src/clang-tidy/llvm/LLVMTidyModule.cpp
The file was added/clang-tools-extra/trunk/clang-tidy/llvm/PreferRegisterOverUnsignedCheck.cppclang-tools-extra.src/clang-tidy/llvm/PreferRegisterOverUnsignedCheck.cpp
The file was added/clang-tools-extra/trunk/clang-tidy/llvm/PreferRegisterOverUnsignedCheck.hclang-tools-extra.src/clang-tidy/llvm/PreferRegisterOverUnsignedCheck.h
The file was modified/clang-tools-extra/trunk/docs/ReleaseNotes.rst (diff)clang-tools-extra.src/docs/ReleaseNotes.rst
The file was modified/clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst (diff)clang-tools-extra.src/docs/clang-tidy/checks/list.rst
The file was added/clang-tools-extra/trunk/docs/clang-tidy/checks/llvm-prefer-register-over-unsigned.rstclang-tools-extra.src/docs/clang-tidy/checks/llvm-prefer-register-over-unsigned.rst
The file was added/clang-tools-extra/trunk/test/clang-tidy/llvm-prefer-register-over-unsigned.cppclang-tools-extra.src/test/clang-tidy/llvm-prefer-register-over-unsigned.cpp
The file was added/clang-tools-extra/trunk/test/clang-tidy/llvm-prefer-register-over-unsigned2.cppclang-tools-extra.src/test/clang-tidy/llvm-prefer-register-over-unsigned2.cpp
The file was added/clang-tools-extra/trunk/test/clang-tidy/llvm-prefer-register-over-unsigned3.cppclang-tools-extra.src/test/clang-tidy/llvm-prefer-register-over-unsigned3.cpp
Revision 370510 by zer0:
[IFS][NFC] llvm-ifs: Fixing build errors for bots using GCC.

gcc produces the error:

error: specialization of
‘template<class T, class Enable> struct llvm::yaml::ScalarTraits’ in
different namespace

For all specializations outside of llvm::yaml. So I added llvm::yaml to these
specializations to fix the errors on the bots building with gcc (/usr/bin/c++).
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-ifs/llvm-ifs.cpp (diff)llvm.src/tools/llvm-ifs/llvm-ifs.cpp
Revision 370508 by jamesm:
[DFAPacketizer] Allow namespacing of automata per-itinerary

The Hexagon itineraries are cunningly crafted such that functional units between
itineraries do not clash. Because all itineraries are bundled into the same DFA,
a functional unit index clash would cause an incorrect DFA to be generated.

A workaround for this is to ensure all itineraries declare the universe of all
possible functional units, but this isn't ideal for three reasons:
  1) We only have a limited number of FUs we can encode in the packetizer, and
     using the universe causes us to hit the limit without care.
  2) Silent codegen faults are bad, and careful triage of the FU list shouldn't
     be required.
  3) Smooshing all itineraries into the same automaton allows combinations of
     instruction classes that cannot exist, which bloats the table.

A simple solution is to allow "namespacing" packetizers.

Differential Revision: https://reviews.llvm.org/D66940
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Target/TargetItinerary.td (diff)llvm.src/include/llvm/Target/TargetItinerary.td
The file was modified/llvm/trunk/utils/TableGen/DFAPacketizerEmitter.cpp (diff)llvm.src/utils/TableGen/DFAPacketizerEmitter.cpp
Revision 370507 by ctopper:
[X86] Regenerate the test cases added in r370506.

Something weird happened with the v2i64/v2f64 test cases which
don't use broadcast. So they should already be hoisted, but
weren't in the version I submitted in r370506. This fixes that.
Not sure if something changed or I screwed up.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-broadcast-unfold.ll (diff)llvm.src/test/CodeGen/X86/avx512-broadcast-unfold.ll
Revision 370506 by ctopper:
[X86] Add test caes for opportunities for machine LICM to unfold broadcasted constant pool loads.

MachineLICM is able to unfold loads to move an invariant load out
a loop, but X86 infrastructure currently lacks the ability to do
this when avx512 embedded broadcasting is used.

This test adds examples for the basic float point operations,
add, mul, and, or, and xor.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/X86/avx512-broadcast-unfold.llllvm.src/test/CodeGen/X86/avx512-broadcast-unfold.ll
Revision 370505 by jsji:
[PowerPC][NFC] Avoid checking non-relevant .cfi instructions

Summary:
This is brought up in
https://reviews.llvm.org/D64662?id=209923#inline-599490

CFI information are non-relevant to quite some testcases,
we should get rid of checking them when its unecessary.

This patch avoid generating cfi info in testcases that are not
testing prolog/epilog or exception handling.

Reviewers: kbarton, hfinkel, nemanjai, #powerpc

Reviewed By: hfinkel

Subscribers: MaskRay, shchenz, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D67016
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/PowerPC/MCSE-caller-preserved-reg.ll (diff)llvm.src/test/CodeGen/PowerPC/MCSE-caller-preserved-reg.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll (diff)llvm.src/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/float-load-store-pair.ll (diff)llvm.src/test/CodeGen/PowerPC/float-load-store-pair.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/fp-int128-fp-combine.ll (diff)llvm.src/test/CodeGen/PowerPC/fp-int128-fp-combine.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/jump-tables-collapse-rotate.ll (diff)llvm.src/test/CodeGen/PowerPC/jump-tables-collapse-rotate.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/machine-pre.ll (diff)llvm.src/test/CodeGen/PowerPC/machine-pre.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll (diff)llvm.src/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/pr36292.ll (diff)llvm.src/test/CodeGen/PowerPC/pr36292.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/remove-redundant-load-imm.ll (diff)llvm.src/test/CodeGen/PowerPC/remove-redundant-load-imm.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/sms-cpy-1.ll (diff)llvm.src/test/CodeGen/PowerPC/sms-cpy-1.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/sms-phi-1.ll (diff)llvm.src/test/CodeGen/PowerPC/sms-phi-1.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/sms-phi-3.ll (diff)llvm.src/test/CodeGen/PowerPC/sms-phi-3.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/testComparesi32gtu.ll (diff)llvm.src/test/CodeGen/PowerPC/testComparesi32gtu.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/testComparesi32ltu.ll (diff)llvm.src/test/CodeGen/PowerPC/testComparesi32ltu.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/umulo-128-legalisation-lowering.ll (diff)llvm.src/test/CodeGen/PowerPC/umulo-128-legalisation-lowering.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/vector-constrained-fp-intrinsics.ll (diff)llvm.src/test/CodeGen/PowerPC/vector-constrained-fp-intrinsics.ll
Revision 370504 by hliao:
Fix compilation warnings. NFC.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-ifs/llvm-ifs.cpp (diff)llvm.src/tools/llvm-ifs/llvm-ifs.cpp