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 Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/lib/AST/DeclCXX.cpp (diff) | clang.src/lib/AST/DeclCXX.cpp |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def (diff) | llvm.src/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def |
|
Change Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/include/clang/Basic/DiagnosticGroups.td (diff) | clang.src/include/clang/Basic/DiagnosticGroups.td |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/lib/Sema/SemaDeclCXX.cpp (diff) | clang.src/lib/Sema/SemaDeclCXX.cpp |
 | /cfe/trunk/test/SemaCXX/MicrosoftExtensions.cpp (diff) | clang.src/test/SemaCXX/MicrosoftExtensions.cpp |
 | /cfe/trunk/test/SemaCXX/warn-final-dtor-non-final-class.cpp | clang.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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/include/llvm/Transforms/Utils/SimplifyLibCalls.h (diff) | llvm.src/include/llvm/Transforms/Utils/SimplifyLibCalls.h |
 | /llvm/trunk/lib/Transforms/Utils/SimplifyLibCalls.cpp (diff) | llvm.src/lib/Transforms/Utils/SimplifyLibCalls.cpp |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff) | llvm.src/lib/Target/X86/X86ISelLowering.cpp |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/test/CodeGen/AArch64/shift-logic.ll (diff) | llvm.src/test/CodeGen/AArch64/shift-logic.ll |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/docs/ConstantInterpreter.rst | clang.src/docs/ConstantInterpreter.rst |
 | /cfe/trunk/docs/index.rst (diff) | clang.src/docs/index.rst |
 | /cfe/trunk/include/clang/AST/ASTContext.h (diff) | clang.src/include/clang/AST/ASTContext.h |
 | /cfe/trunk/include/clang/AST/OptionalDiagnostic.h | clang.src/include/clang/AST/OptionalDiagnostic.h |
 | /cfe/trunk/include/clang/Basic/DiagnosticASTKinds.td (diff) | clang.src/include/clang/Basic/DiagnosticASTKinds.td |
 | /cfe/trunk/include/clang/Basic/LangOptions.def (diff) | clang.src/include/clang/Basic/LangOptions.def |
 | /cfe/trunk/include/clang/Driver/Options.td (diff) | clang.src/include/clang/Driver/Options.td |
 | /cfe/trunk/lib/AST/ASTContext.cpp (diff) | clang.src/lib/AST/ASTContext.cpp |
 | /cfe/trunk/lib/AST/CMakeLists.txt (diff) | clang.src/lib/AST/CMakeLists.txt |
 | /cfe/trunk/lib/AST/ExprConstant.cpp (diff) | clang.src/lib/AST/ExprConstant.cpp |
 | /cfe/trunk/lib/AST/Interp | clang.src/lib/AST/Interp |
 | /cfe/trunk/lib/Driver/ToolChains/Clang.cpp (diff) | clang.src/lib/Driver/ToolChains/Clang.cpp |
 | /cfe/trunk/lib/Frontend/CompilerInvocation.cpp (diff) | clang.src/lib/Frontend/CompilerInvocation.cpp |
 | /cfe/trunk/test/AST/Interp | clang.src/test/AST/Interp |
 | /cfe/trunk/test/SemaCXX/constant-expression-cxx2a.cpp (diff) | clang.src/test/SemaCXX/constant-expression-cxx2a.cpp |
 | /cfe/trunk/test/SemaCXX/constexpr-many-arguments.cpp (diff) | clang.src/test/SemaCXX/constexpr-many-arguments.cpp |
 | /cfe/trunk/test/SemaCXX/shift.cpp (diff) | clang.src/test/SemaCXX/shift.cpp |
 | /cfe/trunk/utils/TableGen/CMakeLists.txt (diff) | clang.src/utils/TableGen/CMakeLists.txt |
 | /cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cpp | clang.src/utils/TableGen/ClangOpcodesEmitter.cpp |
 | /cfe/trunk/utils/TableGen/TableGen.cpp (diff) | clang.src/utils/TableGen/TableGen.cpp |
 | /cfe/trunk/utils/TableGen/TableGenBackends.h (diff) | clang.src/utils/TableGen/TableGenBackends.h |
 | /llvm/trunk/utils/gn/secondary/clang/lib/AST/BUILD.gn (diff) | llvm.src/utils/gn/secondary/clang/lib/AST/BUILD.gn |
 | /llvm/trunk/utils/gn/secondary/clang/lib/AST/Interp | llvm.src/utils/gn/secondary/clang/lib/AST/Interp |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff) | llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
|
Change Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/docs/ConstantInterpreter.rst | clang.src/docs/ConstantInterpreter.rst |
 | /cfe/trunk/docs/index.rst (diff) | clang.src/docs/index.rst |
 | /cfe/trunk/include/clang/AST/ASTContext.h (diff) | clang.src/include/clang/AST/ASTContext.h |
 | /cfe/trunk/include/clang/AST/OptionalDiagnostic.h | clang.src/include/clang/AST/OptionalDiagnostic.h |
 | /cfe/trunk/include/clang/Basic/DiagnosticASTKinds.td (diff) | clang.src/include/clang/Basic/DiagnosticASTKinds.td |
 | /cfe/trunk/include/clang/Basic/LangOptions.def (diff) | clang.src/include/clang/Basic/LangOptions.def |
 | /cfe/trunk/include/clang/Driver/Options.td (diff) | clang.src/include/clang/Driver/Options.td |
 | /cfe/trunk/lib/AST/ASTContext.cpp (diff) | clang.src/lib/AST/ASTContext.cpp |
 | /cfe/trunk/lib/AST/CMakeLists.txt (diff) | clang.src/lib/AST/CMakeLists.txt |
 | /cfe/trunk/lib/AST/ExprConstant.cpp (diff) | clang.src/lib/AST/ExprConstant.cpp |
 | /cfe/trunk/lib/AST/Interp | clang.src/lib/AST/Interp |
 | /cfe/trunk/lib/AST/Interp/Block.cpp | clang.src/lib/AST/Interp/Block.cpp |
 | /cfe/trunk/lib/AST/Interp/Block.h | clang.src/lib/AST/Interp/Block.h |
 | /cfe/trunk/lib/AST/Interp/ByteCodeEmitter.cpp | clang.src/lib/AST/Interp/ByteCodeEmitter.cpp |
 | /cfe/trunk/lib/AST/Interp/ByteCodeEmitter.h | clang.src/lib/AST/Interp/ByteCodeEmitter.h |
 | /cfe/trunk/lib/AST/Interp/ByteCodeExprGen.cpp | clang.src/lib/AST/Interp/ByteCodeExprGen.cpp |
 | /cfe/trunk/lib/AST/Interp/ByteCodeExprGen.h | clang.src/lib/AST/Interp/ByteCodeExprGen.h |
 | /cfe/trunk/lib/AST/Interp/ByteCodeGenError.cpp | clang.src/lib/AST/Interp/ByteCodeGenError.cpp |
 | /cfe/trunk/lib/AST/Interp/ByteCodeGenError.h | clang.src/lib/AST/Interp/ByteCodeGenError.h |
 | /cfe/trunk/lib/AST/Interp/ByteCodeStmtGen.cpp | clang.src/lib/AST/Interp/ByteCodeStmtGen.cpp |
 | /cfe/trunk/lib/AST/Interp/ByteCodeStmtGen.h | clang.src/lib/AST/Interp/ByteCodeStmtGen.h |
 | /cfe/trunk/lib/AST/Interp/CMakeLists.txt | clang.src/lib/AST/Interp/CMakeLists.txt |
 | /cfe/trunk/lib/AST/Interp/Context.cpp | clang.src/lib/AST/Interp/Context.cpp |
 | /cfe/trunk/lib/AST/Interp/Context.h | clang.src/lib/AST/Interp/Context.h |
 | /cfe/trunk/lib/AST/Interp/Descriptor.cpp | clang.src/lib/AST/Interp/Descriptor.cpp |
 | /cfe/trunk/lib/AST/Interp/Descriptor.h | clang.src/lib/AST/Interp/Descriptor.h |
 | /cfe/trunk/lib/AST/Interp/Disasm.cpp | clang.src/lib/AST/Interp/Disasm.cpp |
 | /cfe/trunk/lib/AST/Interp/EvalEmitter.cpp | clang.src/lib/AST/Interp/EvalEmitter.cpp |
 | /cfe/trunk/lib/AST/Interp/EvalEmitter.h | clang.src/lib/AST/Interp/EvalEmitter.h |
 | /cfe/trunk/lib/AST/Interp/Frame.cpp | clang.src/lib/AST/Interp/Frame.cpp |
 | /cfe/trunk/lib/AST/Interp/Frame.h | clang.src/lib/AST/Interp/Frame.h |
 | /cfe/trunk/lib/AST/Interp/Function.cpp | clang.src/lib/AST/Interp/Function.cpp |
 | /cfe/trunk/lib/AST/Interp/Function.h | clang.src/lib/AST/Interp/Function.h |
 | /cfe/trunk/lib/AST/Interp/Integral.h | clang.src/lib/AST/Interp/Integral.h |
 | /cfe/trunk/lib/AST/Interp/Interp.cpp | clang.src/lib/AST/Interp/Interp.cpp |
 | /cfe/trunk/lib/AST/Interp/Interp.h | clang.src/lib/AST/Interp/Interp.h |
 | /cfe/trunk/lib/AST/Interp/InterpFrame.cpp | clang.src/lib/AST/Interp/InterpFrame.cpp |
 | /cfe/trunk/lib/AST/Interp/InterpFrame.h | clang.src/lib/AST/Interp/InterpFrame.h |
 | /cfe/trunk/lib/AST/Interp/InterpStack.cpp | clang.src/lib/AST/Interp/InterpStack.cpp |
 | /cfe/trunk/lib/AST/Interp/InterpStack.h | clang.src/lib/AST/Interp/InterpStack.h |
 | /cfe/trunk/lib/AST/Interp/InterpState.cpp | clang.src/lib/AST/Interp/InterpState.cpp |
 | /cfe/trunk/lib/AST/Interp/InterpState.h | clang.src/lib/AST/Interp/InterpState.h |
 | /cfe/trunk/lib/AST/Interp/Opcode.h | clang.src/lib/AST/Interp/Opcode.h |
 | /cfe/trunk/lib/AST/Interp/Opcodes.td | clang.src/lib/AST/Interp/Opcodes.td |
 | /cfe/trunk/lib/AST/Interp/Pointer.cpp | clang.src/lib/AST/Interp/Pointer.cpp |
 | /cfe/trunk/lib/AST/Interp/Pointer.h | clang.src/lib/AST/Interp/Pointer.h |
 | /cfe/trunk/lib/AST/Interp/Program.cpp | clang.src/lib/AST/Interp/Program.cpp |
 | /cfe/trunk/lib/AST/Interp/Program.h | clang.src/lib/AST/Interp/Program.h |
 | /cfe/trunk/lib/AST/Interp/Record.cpp | clang.src/lib/AST/Interp/Record.cpp |
 | /cfe/trunk/lib/AST/Interp/Record.h | clang.src/lib/AST/Interp/Record.h |
 | /cfe/trunk/lib/AST/Interp/Source.cpp | clang.src/lib/AST/Interp/Source.cpp |
 | /cfe/trunk/lib/AST/Interp/Source.h | clang.src/lib/AST/Interp/Source.h |
 | /cfe/trunk/lib/AST/Interp/State.cpp | clang.src/lib/AST/Interp/State.cpp |
 | /cfe/trunk/lib/AST/Interp/State.h | clang.src/lib/AST/Interp/State.h |
 | /cfe/trunk/lib/AST/Interp/Type.cpp | clang.src/lib/AST/Interp/Type.cpp |
 | /cfe/trunk/lib/AST/Interp/Type.h | clang.src/lib/AST/Interp/Type.h |
 | /cfe/trunk/lib/Driver/ToolChains/Clang.cpp (diff) | clang.src/lib/Driver/ToolChains/Clang.cpp |
 | /cfe/trunk/lib/Frontend/CompilerInvocation.cpp (diff) | clang.src/lib/Frontend/CompilerInvocation.cpp |
 | /cfe/trunk/test/AST/Interp | clang.src/test/AST/Interp |
 | /cfe/trunk/test/AST/Interp/cond.cpp | clang.src/test/AST/Interp/cond.cpp |
 | /cfe/trunk/test/SemaCXX/constant-expression-cxx2a.cpp (diff) | clang.src/test/SemaCXX/constant-expression-cxx2a.cpp |
 | /cfe/trunk/test/SemaCXX/constexpr-many-arguments.cpp (diff) | clang.src/test/SemaCXX/constexpr-many-arguments.cpp |
 | /cfe/trunk/test/SemaCXX/shift.cpp (diff) | clang.src/test/SemaCXX/shift.cpp |
 | /cfe/trunk/utils/TableGen/CMakeLists.txt (diff) | clang.src/utils/TableGen/CMakeLists.txt |
 | /cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cpp | clang.src/utils/TableGen/ClangOpcodesEmitter.cpp |
 | /cfe/trunk/utils/TableGen/TableGen.cpp (diff) | clang.src/utils/TableGen/TableGen.cpp |
 | /cfe/trunk/utils/TableGen/TableGenBackends.h (diff) | clang.src/utils/TableGen/TableGenBackends.h |
 | /llvm/trunk/utils/gn/secondary/clang/lib/AST/BUILD.gn (diff) | llvm.src/utils/gn/secondary/clang/lib/AST/BUILD.gn |
 | /llvm/trunk/utils/gn/secondary/clang/lib/AST/Interp | llvm.src/utils/gn/secondary/clang/lib/AST/Interp |
 | /llvm/trunk/utils/gn/secondary/clang/lib/AST/Interp/BUILD.gn | llvm.src/utils/gn/secondary/clang/lib/AST/Interp/BUILD.gn |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff) | llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
 | /llvm/trunk/test/CodeGen/X86/rotate-extract-vector.ll (diff) | llvm.src/test/CodeGen/X86/rotate-extract-vector.ll |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp (diff) | llvm.src/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/include/llvm/ProfileData/SampleProf.h (diff) | llvm.src/include/llvm/ProfileData/SampleProf.h |
 | /llvm/trunk/lib/ProfileData/SampleProf.cpp (diff) | llvm.src/lib/ProfileData/SampleProf.cpp |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/include/llvm/ProfileData/SampleProf.h (diff) | llvm.src/include/llvm/ProfileData/SampleProf.h |
 | /llvm/trunk/include/llvm/ProfileData/SampleProfReader.h (diff) | llvm.src/include/llvm/ProfileData/SampleProfReader.h |
 | /llvm/trunk/include/llvm/ProfileData/SampleProfWriter.h (diff) | llvm.src/include/llvm/ProfileData/SampleProfWriter.h |
 | /llvm/trunk/lib/ProfileData/SampleProf.cpp (diff) | llvm.src/lib/ProfileData/SampleProf.cpp |
 | /llvm/trunk/lib/ProfileData/SampleProfReader.cpp (diff) | llvm.src/lib/ProfileData/SampleProfReader.cpp |
 | /llvm/trunk/lib/ProfileData/SampleProfWriter.cpp (diff) | llvm.src/lib/ProfileData/SampleProfWriter.cpp |
 | /llvm/trunk/lib/Transforms/IPO/SampleProfile.cpp (diff) | llvm.src/lib/Transforms/IPO/SampleProfile.cpp |
 | /llvm/trunk/test/Transforms/SampleProfile/Inputs/profile-symbol-list.ll | llvm.src/test/Transforms/SampleProfile/Inputs/profile-symbol-list.ll |
 | /llvm/trunk/test/Transforms/SampleProfile/Inputs/profile-symbol-list.text | llvm.src/test/Transforms/SampleProfile/Inputs/profile-symbol-list.text |
 | /llvm/trunk/test/Transforms/SampleProfile/compressed-profile-symbol-list.ll | llvm.src/test/Transforms/SampleProfile/compressed-profile-symbol-list.ll |
 | /llvm/trunk/test/Transforms/SampleProfile/uncompressed-profile-symbol-list.ll | llvm.src/test/Transforms/SampleProfile/uncompressed-profile-symbol-list.ll |
 | /llvm/trunk/test/tools/llvm-profdata/Inputs/profile-symbol-list-1.text | llvm.src/test/tools/llvm-profdata/Inputs/profile-symbol-list-1.text |
 | /llvm/trunk/test/tools/llvm-profdata/Inputs/profile-symbol-list-2.text | llvm.src/test/tools/llvm-profdata/Inputs/profile-symbol-list-2.text |
 | /llvm/trunk/test/tools/llvm-profdata/Inputs/profile-symbol-list.expected | llvm.src/test/tools/llvm-profdata/Inputs/profile-symbol-list.expected |
 | /llvm/trunk/test/tools/llvm-profdata/profile-symbol-list.test | llvm.src/test/tools/llvm-profdata/profile-symbol-list.test |
 | /llvm/trunk/tools/llvm-profdata/llvm-profdata.cpp (diff) | llvm.src/tools/llvm-profdata/llvm-profdata.cpp |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/include/clang/Basic/FileManager.h (diff) | clang.src/include/clang/Basic/FileManager.h |
 | /cfe/trunk/include/clang/Lex/DirectoryLookup.h (diff) | clang.src/include/clang/Lex/DirectoryLookup.h |
 | /cfe/trunk/lib/Basic/FileManager.cpp (diff) | clang.src/lib/Basic/FileManager.cpp |
 | /cfe/trunk/lib/Frontend/InitHeaderSearch.cpp (diff) | clang.src/lib/Frontend/InitHeaderSearch.cpp |
 | /cfe/trunk/lib/Lex/HeaderSearch.cpp (diff) | clang.src/lib/Lex/HeaderSearch.cpp |
 | /cfe/trunk/lib/Lex/PPDirectives.cpp (diff) | clang.src/lib/Lex/PPDirectives.cpp |
 | /cfe/trunk/test/ClangScanDeps/Inputs/subframework_header_dir_symlink_cdb.json (diff) | clang.src/test/ClangScanDeps/Inputs/subframework_header_dir_symlink_cdb.json |
 | /cfe/trunk/test/ClangScanDeps/subframework_header_dir_symlink.m (diff) | clang.src/test/ClangScanDeps/subframework_header_dir_symlink.m |
 | /cfe/trunk/unittests/Lex/HeaderSearchTest.cpp (diff) | clang.src/unittests/Lex/HeaderSearchTest.cpp |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/include/clang/AST/Expr.h (diff) | clang.src/include/clang/AST/Expr.h |
 | /cfe/trunk/include/clang/Sema/Sema.h (diff) | clang.src/include/clang/Sema/Sema.h |
 | /cfe/trunk/lib/Parse/ParseInit.cpp (diff) | clang.src/lib/Parse/ParseInit.cpp |
 | /cfe/trunk/lib/Sema/SemaInit.cpp (diff) | clang.src/lib/Sema/SemaInit.cpp |
 | /cfe/trunk/test/Parser/cxx2a-designated-init.cpp | clang.src/test/Parser/cxx2a-designated-init.cpp |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/include/clang/Basic/BuiltinsWebAssembly.def (diff) | clang.src/include/clang/Basic/BuiltinsWebAssembly.def |
 | /cfe/trunk/lib/CodeGen/CGBuiltin.cpp (diff) | clang.src/lib/CodeGen/CGBuiltin.cpp |
 | /cfe/trunk/test/CodeGen/builtins-wasm.c (diff) | clang.src/test/CodeGen/builtins-wasm.c |
 | /llvm/trunk/include/llvm/IR/IntrinsicsWebAssembly.td (diff) | llvm.src/include/llvm/IR/IntrinsicsWebAssembly.td |
 | /llvm/trunk/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td (diff) | llvm.src/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td |
 | /llvm/trunk/test/CodeGen/WebAssembly/simd-intrinsics.ll (diff) | llvm.src/test/CodeGen/WebAssembly/simd-intrinsics.ll |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp (diff) | clang.src/lib/Sema/SemaTemplateDeduction.cpp |
 | /cfe/trunk/test/SemaCXX/cxx0x-initializer-stdinitializerlist.cpp (diff) | clang.src/test/SemaCXX/cxx0x-initializer-stdinitializerlist.cpp |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /libcxx/trunk/test/pretty_printers | libcxx.src/test/pretty_printers |
 | /libcxx/trunk/utils/gdb | libcxx.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 Type | Path in Repository | Path in Workspace |
---|
 | /libcxx/trunk/test/pretty_printers | libcxx.src/test/pretty_printers |
 | /libcxx/trunk/test/pretty_printers/gdb_pretty_printer_test.py | libcxx.src/test/pretty_printers/gdb_pretty_printer_test.py |
 | /libcxx/trunk/test/pretty_printers/gdb_pretty_printer_test.sh.cpp | libcxx.src/test/pretty_printers/gdb_pretty_printer_test.sh.cpp |
 | /libcxx/trunk/utils/gdb | libcxx.src/utils/gdb |
 | /libcxx/trunk/utils/gdb/libcxx | libcxx.src/utils/gdb/libcxx |
 | /libcxx/trunk/utils/gdb/libcxx/printers.py | libcxx.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 Type | Path in Repository | Path in Workspace |
---|
 | /lldb/trunk/lit/CMakeLists.txt (diff) | N/A |
 | /lldb/trunk/lit/Suite/lit.cfg (diff) | N/A |
 | /lldb/trunk/lit/Suite/lit.site.cfg.in (diff) | N/A |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/Analysis/MemorySSA.cpp (diff) | llvm.src/lib/Analysis/MemorySSA.cpp |
 | /llvm/trunk/test/Analysis/MemorySSA/renamephis.ll | llvm.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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/include/llvm/Transforms/Scalar/GVN.h (diff) | llvm.src/include/llvm/Transforms/Scalar/GVN.h |
 | /llvm/trunk/lib/Transforms/Scalar/GVN.cpp (diff) | llvm.src/lib/Transforms/Scalar/GVN.cpp |
 | /llvm/trunk/test/Transforms/GVN/pr42605.ll | llvm.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 Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/include/clang/Basic/FileManager.h (diff) | clang.src/include/clang/Basic/FileManager.h |
 | /cfe/trunk/include/clang/Basic/SourceManager.h (diff) | clang.src/include/clang/Basic/SourceManager.h |
 | /cfe/trunk/lib/Basic/FileManager.cpp (diff) | clang.src/lib/Basic/FileManager.cpp |
 | /cfe/trunk/lib/Basic/SourceManager.cpp (diff) | clang.src/lib/Basic/SourceManager.cpp |
 | /cfe/trunk/lib/Serialization/ASTReader.cpp (diff) | clang.src/lib/Serialization/ASTReader.cpp |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/include/clang/Basic/DiagnosticGroups.td (diff) | clang.src/include/clang/Basic/DiagnosticGroups.td |
 | /cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (diff) | clang.src/include/clang/Basic/DiagnosticSemaKinds.td |
 | /cfe/trunk/include/clang/Sema/Sema.h (diff) | clang.src/include/clang/Sema/Sema.h |
 | /cfe/trunk/lib/Sema/SemaExpr.cpp (diff) | clang.src/lib/Sema/SemaExpr.cpp |
 | /cfe/trunk/lib/Sema/SemaInit.cpp (diff) | clang.src/lib/Sema/SemaInit.cpp |
 | /cfe/trunk/lib/Sema/SemaOverload.cpp (diff) | clang.src/lib/Sema/SemaOverload.cpp |
 | /cfe/trunk/lib/Sema/TreeTransform.h (diff) | clang.src/lib/Sema/TreeTransform.h |
 | /cfe/trunk/test/Analysis/globals.cpp (diff) | clang.src/test/Analysis/globals.cpp |
 | /cfe/trunk/test/CXX/expr/expr.const/p2-0x.cpp (diff) | clang.src/test/CXX/expr/expr.const/p2-0x.cpp |
 | /cfe/trunk/test/CodeGenObjCXX/designated-initializers.mm (diff) | clang.src/test/CodeGenObjCXX/designated-initializers.mm |
 | /cfe/trunk/test/PCH/cxx1y-default-initializer.cpp (diff) | clang.src/test/PCH/cxx1y-default-initializer.cpp |
 | /cfe/trunk/test/Parser/cxx0x-lambda-expressions.cpp (diff) | clang.src/test/Parser/cxx0x-lambda-expressions.cpp |
 | /cfe/trunk/test/Parser/objc-init.m (diff) | clang.src/test/Parser/objc-init.m |
 | /cfe/trunk/test/Sema/designated-initializers.c (diff) | clang.src/test/Sema/designated-initializers.c |
 | /cfe/trunk/test/Sema/static-assert.c (diff) | clang.src/test/Sema/static-assert.c |
 | /cfe/trunk/test/SemaCXX/aggregate-initialization.cpp (diff) | clang.src/test/SemaCXX/aggregate-initialization.cpp |
 | /cfe/trunk/test/SemaCXX/c99.cpp (diff) | clang.src/test/SemaCXX/c99.cpp |
 | /cfe/trunk/test/SemaCXX/constant-expression-cxx11.cpp (diff) | clang.src/test/SemaCXX/constant-expression-cxx11.cpp |
 | /cfe/trunk/test/SemaCXX/constexpr-printing.cpp (diff) | clang.src/test/SemaCXX/constexpr-printing.cpp |
 | /cfe/trunk/test/SemaCXX/cxx0x-initializer-constructor.cpp (diff) | clang.src/test/SemaCXX/cxx0x-initializer-constructor.cpp |
 | /cfe/trunk/test/SemaCXX/cxx2a-initializer-aggregates.cpp (diff) | clang.src/test/SemaCXX/cxx2a-initializer-aggregates.cpp |
 | /cfe/trunk/test/SemaCXX/decltype.cpp (diff) | clang.src/test/SemaCXX/decltype.cpp |
 | /cfe/trunk/test/SemaCXX/designated-initializers-base-class.cpp (diff) | clang.src/test/SemaCXX/designated-initializers-base-class.cpp |
 | /cfe/trunk/test/SemaCXX/designated-initializers.cpp (diff) | clang.src/test/SemaCXX/designated-initializers.cpp |
 | /cfe/trunk/test/SemaCXX/eval-crashes.cpp (diff) | clang.src/test/SemaCXX/eval-crashes.cpp |
 | /cfe/trunk/test/SemaCXX/member-init.cpp (diff) | clang.src/test/SemaCXX/member-init.cpp |
 | /cfe/trunk/test/SemaObjCXX/message.mm (diff) | clang.src/test/SemaObjCXX/message.mm |
 | /cfe/trunk/test/SemaTemplate/instantiate-c99.cpp (diff) | clang.src/test/SemaTemplate/instantiate-c99.cpp |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/MC/MCAsmStreamer.cpp (diff) | llvm.src/lib/MC/MCAsmStreamer.cpp |
 | /llvm/trunk/lib/MC/MCParser/COFFAsmParser.cpp (diff) | llvm.src/lib/MC/MCParser/COFFAsmParser.cpp |
 | /llvm/trunk/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp (diff) | llvm.src/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/docs/ConstantInterpreter.rst | clang.src/docs/ConstantInterpreter.rst |
 | /cfe/trunk/docs/index.rst (diff) | clang.src/docs/index.rst |
 | /cfe/trunk/include/clang/AST/ASTContext.h (diff) | clang.src/include/clang/AST/ASTContext.h |
 | /cfe/trunk/include/clang/Basic/DiagnosticASTKinds.td (diff) | clang.src/include/clang/Basic/DiagnosticASTKinds.td |
 | /cfe/trunk/include/clang/Basic/LangOptions.def (diff) | clang.src/include/clang/Basic/LangOptions.def |
 | /cfe/trunk/include/clang/Basic/OptionalDiagnostic.h | clang.src/include/clang/Basic/OptionalDiagnostic.h |
 | /cfe/trunk/include/clang/Driver/Options.td (diff) | clang.src/include/clang/Driver/Options.td |
 | /cfe/trunk/lib/AST/ASTContext.cpp (diff) | clang.src/lib/AST/ASTContext.cpp |
 | /cfe/trunk/lib/AST/CMakeLists.txt (diff) | clang.src/lib/AST/CMakeLists.txt |
 | /cfe/trunk/lib/AST/ExprConstant.cpp (diff) | clang.src/lib/AST/ExprConstant.cpp |
 | /cfe/trunk/lib/AST/Interp | clang.src/lib/AST/Interp |
 | /cfe/trunk/lib/Driver/ToolChains/Clang.cpp (diff) | clang.src/lib/Driver/ToolChains/Clang.cpp |
 | /cfe/trunk/lib/Frontend/CompilerInvocation.cpp (diff) | clang.src/lib/Frontend/CompilerInvocation.cpp |
 | /cfe/trunk/test/AST/Interp | clang.src/test/AST/Interp |
 | /cfe/trunk/test/SemaCXX/constant-expression-cxx2a.cpp (diff) | clang.src/test/SemaCXX/constant-expression-cxx2a.cpp |
 | /cfe/trunk/test/SemaCXX/constexpr-many-arguments.cpp (diff) | clang.src/test/SemaCXX/constexpr-many-arguments.cpp |
 | /cfe/trunk/test/SemaCXX/shift.cpp (diff) | clang.src/test/SemaCXX/shift.cpp |
 | /cfe/trunk/utils/TableGen/CMakeLists.txt (diff) | clang.src/utils/TableGen/CMakeLists.txt |
 | /cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cpp | clang.src/utils/TableGen/ClangOpcodesEmitter.cpp |
 | /cfe/trunk/utils/TableGen/TableGen.cpp (diff) | clang.src/utils/TableGen/TableGen.cpp |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/include/llvm/MC/MCStreamer.h (diff) | llvm.src/include/llvm/MC/MCStreamer.h |
 | /llvm/trunk/lib/MC/MCAsmStreamer.cpp (diff) | llvm.src/lib/MC/MCAsmStreamer.cpp |
 | /llvm/trunk/lib/MC/MCParser/COFFAsmParser.cpp (diff) | llvm.src/lib/MC/MCParser/COFFAsmParser.cpp |
 | /llvm/trunk/lib/MC/MCStreamer.cpp (diff) | llvm.src/lib/MC/MCStreamer.cpp |
 | /llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp (diff) | llvm.src/lib/Target/X86/AsmParser/X86AsmParser.cpp |
 | /llvm/trunk/lib/Target/X86/X86MCInstLower.cpp (diff) | llvm.src/lib/Target/X86/X86MCInstLower.cpp |
 | /llvm/trunk/test/CodeGen/X86/avx512-regcall-Mask.ll (diff) | llvm.src/test/CodeGen/X86/avx512-regcall-Mask.ll |
 | /llvm/trunk/test/CodeGen/X86/avx512-regcall-NoMask.ll (diff) | llvm.src/test/CodeGen/X86/avx512-regcall-NoMask.ll |
 | /llvm/trunk/test/CodeGen/X86/catchpad-realign-savexmm.ll (diff) | llvm.src/test/CodeGen/X86/catchpad-realign-savexmm.ll |
 | /llvm/trunk/test/CodeGen/X86/cleanuppad-realign.ll (diff) | llvm.src/test/CodeGen/X86/cleanuppad-realign.ll |
 | /llvm/trunk/test/CodeGen/X86/conditional-tailcall.ll (diff) | llvm.src/test/CodeGen/X86/conditional-tailcall.ll |
 | /llvm/trunk/test/CodeGen/X86/gcc_except_table.ll (diff) | llvm.src/test/CodeGen/X86/gcc_except_table.ll |
 | /llvm/trunk/test/CodeGen/X86/localescape.ll (diff) | llvm.src/test/CodeGen/X86/localescape.ll |
 | /llvm/trunk/test/CodeGen/X86/musttail-varargs.ll (diff) | llvm.src/test/CodeGen/X86/musttail-varargs.ll |
 | /llvm/trunk/test/CodeGen/X86/seh-catchpad.ll (diff) | llvm.src/test/CodeGen/X86/seh-catchpad.ll |
 | /llvm/trunk/test/CodeGen/X86/win-catchpad-csrs.ll (diff) | llvm.src/test/CodeGen/X86/win-catchpad-csrs.ll |
 | /llvm/trunk/test/CodeGen/X86/win-catchpad.ll (diff) | llvm.src/test/CodeGen/X86/win-catchpad.ll |
 | /llvm/trunk/test/CodeGen/X86/win-funclet-cfi.ll (diff) | llvm.src/test/CodeGen/X86/win-funclet-cfi.ll |
 | /llvm/trunk/test/CodeGen/X86/win64-funclet-savexmm.ll (diff) | llvm.src/test/CodeGen/X86/win64-funclet-savexmm.ll |
 | /llvm/trunk/test/CodeGen/X86/win64_eh.ll (diff) | llvm.src/test/CodeGen/X86/win64_eh.ll |
 | /llvm/trunk/test/CodeGen/X86/win64_frame.ll (diff) | llvm.src/test/CodeGen/X86/win64_frame.ll |
 | /llvm/trunk/test/CodeGen/X86/x86-64-flags-intrinsics.ll (diff) | llvm.src/test/CodeGen/X86/x86-64-flags-intrinsics.ll |
 | /llvm/trunk/test/MC/AsmParser/directive_seh.s (diff) | llvm.src/test/MC/AsmParser/directive_seh.s |
 | /llvm/trunk/test/MC/AsmParser/seh-directive-errors.s (diff) | llvm.src/test/MC/AsmParser/seh-directive-errors.s |
 | /llvm/trunk/test/MC/COFF/seh-align3.s (diff) | llvm.src/test/MC/COFF/seh-align3.s |
 | /llvm/trunk/test/MC/COFF/seh-linkonce.s (diff) | llvm.src/test/MC/COFF/seh-linkonce.s |
 | /llvm/trunk/test/MC/COFF/seh.s (diff) | llvm.src/test/MC/COFF/seh.s |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/docs/ConstantInterpreter.rst | clang.src/docs/ConstantInterpreter.rst |
 | /cfe/trunk/docs/index.rst (diff) | clang.src/docs/index.rst |
 | /cfe/trunk/include/clang/AST/ASTContext.h (diff) | clang.src/include/clang/AST/ASTContext.h |
 | /cfe/trunk/include/clang/Basic/DiagnosticASTKinds.td (diff) | clang.src/include/clang/Basic/DiagnosticASTKinds.td |
 | /cfe/trunk/include/clang/Basic/LangOptions.def (diff) | clang.src/include/clang/Basic/LangOptions.def |
 | /cfe/trunk/include/clang/Basic/OptionalDiagnostic.h | clang.src/include/clang/Basic/OptionalDiagnostic.h |
 | /cfe/trunk/include/clang/Driver/Options.td (diff) | clang.src/include/clang/Driver/Options.td |
 | /cfe/trunk/lib/AST/ASTContext.cpp (diff) | clang.src/lib/AST/ASTContext.cpp |
 | /cfe/trunk/lib/AST/CMakeLists.txt (diff) | clang.src/lib/AST/CMakeLists.txt |
 | /cfe/trunk/lib/AST/ExprConstant.cpp (diff) | clang.src/lib/AST/ExprConstant.cpp |
 | /cfe/trunk/lib/AST/Interp | clang.src/lib/AST/Interp |
 | /cfe/trunk/lib/AST/Interp/Block.cpp | clang.src/lib/AST/Interp/Block.cpp |
 | /cfe/trunk/lib/AST/Interp/Block.h | clang.src/lib/AST/Interp/Block.h |
 | /cfe/trunk/lib/AST/Interp/ByteCodeEmitter.cpp | clang.src/lib/AST/Interp/ByteCodeEmitter.cpp |
 | /cfe/trunk/lib/AST/Interp/ByteCodeEmitter.h | clang.src/lib/AST/Interp/ByteCodeEmitter.h |
 | /cfe/trunk/lib/AST/Interp/ByteCodeExprGen.cpp | clang.src/lib/AST/Interp/ByteCodeExprGen.cpp |
 | /cfe/trunk/lib/AST/Interp/ByteCodeExprGen.h | clang.src/lib/AST/Interp/ByteCodeExprGen.h |
 | /cfe/trunk/lib/AST/Interp/ByteCodeGenError.cpp | clang.src/lib/AST/Interp/ByteCodeGenError.cpp |
 | /cfe/trunk/lib/AST/Interp/ByteCodeGenError.h | clang.src/lib/AST/Interp/ByteCodeGenError.h |
 | /cfe/trunk/lib/AST/Interp/ByteCodeStmtGen.cpp | clang.src/lib/AST/Interp/ByteCodeStmtGen.cpp |
 | /cfe/trunk/lib/AST/Interp/ByteCodeStmtGen.h | clang.src/lib/AST/Interp/ByteCodeStmtGen.h |
 | /cfe/trunk/lib/AST/Interp/CMakeLists.txt | clang.src/lib/AST/Interp/CMakeLists.txt |
 | /cfe/trunk/lib/AST/Interp/Context.cpp | clang.src/lib/AST/Interp/Context.cpp |
 | /cfe/trunk/lib/AST/Interp/Context.h | clang.src/lib/AST/Interp/Context.h |
 | /cfe/trunk/lib/AST/Interp/Descriptor.cpp | clang.src/lib/AST/Interp/Descriptor.cpp |
 | /cfe/trunk/lib/AST/Interp/Descriptor.h | clang.src/lib/AST/Interp/Descriptor.h |
 | /cfe/trunk/lib/AST/Interp/Disasm.cpp | clang.src/lib/AST/Interp/Disasm.cpp |
 | /cfe/trunk/lib/AST/Interp/EvalEmitter.cpp | clang.src/lib/AST/Interp/EvalEmitter.cpp |
 | /cfe/trunk/lib/AST/Interp/EvalEmitter.h | clang.src/lib/AST/Interp/EvalEmitter.h |
 | /cfe/trunk/lib/AST/Interp/Frame.cpp | clang.src/lib/AST/Interp/Frame.cpp |
 | /cfe/trunk/lib/AST/Interp/Frame.h | clang.src/lib/AST/Interp/Frame.h |
 | /cfe/trunk/lib/AST/Interp/Function.cpp | clang.src/lib/AST/Interp/Function.cpp |
 | /cfe/trunk/lib/AST/Interp/Function.h | clang.src/lib/AST/Interp/Function.h |
 | /cfe/trunk/lib/AST/Interp/Integral.h | clang.src/lib/AST/Interp/Integral.h |
 | /cfe/trunk/lib/AST/Interp/Interp.cpp | clang.src/lib/AST/Interp/Interp.cpp |
 | /cfe/trunk/lib/AST/Interp/Interp.h | clang.src/lib/AST/Interp/Interp.h |
 | /cfe/trunk/lib/AST/Interp/InterpFrame.cpp | clang.src/lib/AST/Interp/InterpFrame.cpp |
 | /cfe/trunk/lib/AST/Interp/InterpFrame.h | clang.src/lib/AST/Interp/InterpFrame.h |
 | /cfe/trunk/lib/AST/Interp/InterpStack.cpp | clang.src/lib/AST/Interp/InterpStack.cpp |
 | /cfe/trunk/lib/AST/Interp/InterpStack.h | clang.src/lib/AST/Interp/InterpStack.h |
 | /cfe/trunk/lib/AST/Interp/InterpState.cpp | clang.src/lib/AST/Interp/InterpState.cpp |
 | /cfe/trunk/lib/AST/Interp/InterpState.h | clang.src/lib/AST/Interp/InterpState.h |
 | /cfe/trunk/lib/AST/Interp/Opcode.h | clang.src/lib/AST/Interp/Opcode.h |
 | /cfe/trunk/lib/AST/Interp/Opcodes.td | clang.src/lib/AST/Interp/Opcodes.td |
 | /cfe/trunk/lib/AST/Interp/Pointer.cpp | clang.src/lib/AST/Interp/Pointer.cpp |
 | /cfe/trunk/lib/AST/Interp/Pointer.h | clang.src/lib/AST/Interp/Pointer.h |
 | /cfe/trunk/lib/AST/Interp/Program.cpp | clang.src/lib/AST/Interp/Program.cpp |
 | /cfe/trunk/lib/AST/Interp/Program.h | clang.src/lib/AST/Interp/Program.h |
 | /cfe/trunk/lib/AST/Interp/Record.cpp | clang.src/lib/AST/Interp/Record.cpp |
 | /cfe/trunk/lib/AST/Interp/Record.h | clang.src/lib/AST/Interp/Record.h |
 | /cfe/trunk/lib/AST/Interp/Source.cpp | clang.src/lib/AST/Interp/Source.cpp |
 | /cfe/trunk/lib/AST/Interp/Source.h | clang.src/lib/AST/Interp/Source.h |
 | /cfe/trunk/lib/AST/Interp/State.cpp | clang.src/lib/AST/Interp/State.cpp |
 | /cfe/trunk/lib/AST/Interp/State.h | clang.src/lib/AST/Interp/State.h |
 | /cfe/trunk/lib/AST/Interp/Type.cpp | clang.src/lib/AST/Interp/Type.cpp |
 | /cfe/trunk/lib/AST/Interp/Type.h | clang.src/lib/AST/Interp/Type.h |
 | /cfe/trunk/lib/Driver/ToolChains/Clang.cpp (diff) | clang.src/lib/Driver/ToolChains/Clang.cpp |
 | /cfe/trunk/lib/Frontend/CompilerInvocation.cpp (diff) | clang.src/lib/Frontend/CompilerInvocation.cpp |
 | /cfe/trunk/test/AST/Interp | clang.src/test/AST/Interp |
 | /cfe/trunk/test/AST/Interp/cond.cpp | clang.src/test/AST/Interp/cond.cpp |
 | /cfe/trunk/test/SemaCXX/constant-expression-cxx2a.cpp (diff) | clang.src/test/SemaCXX/constant-expression-cxx2a.cpp |
 | /cfe/trunk/test/SemaCXX/constexpr-many-arguments.cpp (diff) | clang.src/test/SemaCXX/constexpr-many-arguments.cpp |
 | /cfe/trunk/test/SemaCXX/shift.cpp (diff) | clang.src/test/SemaCXX/shift.cpp |
 | /cfe/trunk/utils/TableGen/CMakeLists.txt (diff) | clang.src/utils/TableGen/CMakeLists.txt |
 | /cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cpp | clang.src/utils/TableGen/ClangOpcodesEmitter.cpp |
 | /cfe/trunk/utils/TableGen/TableGen.cpp (diff) | clang.src/utils/TableGen/TableGen.cpp |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/test/CodeGen/X86/shift-logic.ll | llvm.src/test/CodeGen/X86/shift-logic.ll |
Revision
370528
by spatel:
[AArch64] add tests for shift-logic-shift; NFC |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/test/CodeGen/AArch64/shift-logic.ll | llvm.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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/Target/X86/X86FrameLowering.cpp (diff) | llvm.src/lib/Target/X86/X86FrameLowering.cpp |
 | /llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff) | llvm.src/lib/Target/X86/X86ISelLowering.cpp |
 | /llvm/trunk/lib/Target/X86/X86ISelLowering.h (diff) | llvm.src/lib/Target/X86/X86ISelLowering.h |
 | /llvm/trunk/lib/Target/X86/X86InstrCompiler.td (diff) | llvm.src/lib/Target/X86/X86InstrCompiler.td |
 | /llvm/trunk/lib/Target/X86/X86InstrInfo.td (diff) | llvm.src/lib/Target/X86/X86InstrInfo.td |
 | /llvm/trunk/lib/Target/X86/X86MCInstLower.cpp (diff) | llvm.src/lib/Target/X86/X86MCInstLower.cpp |
 | /llvm/trunk/lib/Target/X86/X86TargetMachine.cpp (diff) | llvm.src/lib/Target/X86/X86TargetMachine.cpp |
 | /llvm/trunk/test/CodeGen/WinEH/wineh-noret-cleanup.ll (diff) | llvm.src/test/CodeGen/WinEH/wineh-noret-cleanup.ll |
 | /llvm/trunk/test/CodeGen/X86/br-fold.ll (diff) | llvm.src/test/CodeGen/X86/br-fold.ll |
 | /llvm/trunk/test/CodeGen/X86/catchpad-lifetime.ll (diff) | llvm.src/test/CodeGen/X86/catchpad-lifetime.ll |
 | /llvm/trunk/test/CodeGen/X86/catchpad-regmask.ll (diff) | llvm.src/test/CodeGen/X86/catchpad-regmask.ll |
 | /llvm/trunk/test/CodeGen/X86/catchret-regmask.ll (diff) | llvm.src/test/CodeGen/X86/catchret-regmask.ll |
 | /llvm/trunk/test/CodeGen/X86/empty-function.ll (diff) | llvm.src/test/CodeGen/X86/empty-function.ll |
 | /llvm/trunk/test/CodeGen/X86/funclet-layout.ll (diff) | llvm.src/test/CodeGen/X86/funclet-layout.ll |
 | /llvm/trunk/test/CodeGen/X86/noreturn-call-win64.ll | llvm.src/test/CodeGen/X86/noreturn-call-win64.ll |
 | /llvm/trunk/test/CodeGen/X86/pr24374.ll (diff) | llvm.src/test/CodeGen/X86/pr24374.ll |
 | /llvm/trunk/test/CodeGen/X86/trap.ll (diff) | llvm.src/test/CodeGen/X86/trap.ll |
 | /llvm/trunk/test/CodeGen/X86/unreachable-trap.ll (diff) | llvm.src/test/CodeGen/X86/unreachable-trap.ll |
 | /llvm/trunk/test/CodeGen/X86/win64_call_epi.ll (diff) | llvm.src/test/CodeGen/X86/win64_call_epi.ll |
 | /llvm/trunk/test/CodeGen/X86/win64_eh.ll (diff) | llvm.src/test/CodeGen/X86/win64_eh.ll |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/tools/llvm-ifs/llvm-ifs.cpp (diff) | llvm.src/tools/llvm-ifs/llvm-ifs.cpp |
|
Change Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /clang-tools-extra/trunk/clang-tidy/llvm/CMakeLists.txt (diff) | clang-tools-extra.src/clang-tidy/llvm/CMakeLists.txt |
 | /clang-tools-extra/trunk/clang-tidy/llvm/LLVMTidyModule.cpp (diff) | clang-tools-extra.src/clang-tidy/llvm/LLVMTidyModule.cpp |
 | /clang-tools-extra/trunk/clang-tidy/llvm/PreferRegisterOverUnsignedCheck.cpp | clang-tools-extra.src/clang-tidy/llvm/PreferRegisterOverUnsignedCheck.cpp |
 | /clang-tools-extra/trunk/clang-tidy/llvm/PreferRegisterOverUnsignedCheck.h | clang-tools-extra.src/clang-tidy/llvm/PreferRegisterOverUnsignedCheck.h |
 | /clang-tools-extra/trunk/docs/ReleaseNotes.rst (diff) | clang-tools-extra.src/docs/ReleaseNotes.rst |
 | /clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst (diff) | clang-tools-extra.src/docs/clang-tidy/checks/list.rst |
 | /clang-tools-extra/trunk/docs/clang-tidy/checks/llvm-prefer-register-over-unsigned.rst | clang-tools-extra.src/docs/clang-tidy/checks/llvm-prefer-register-over-unsigned.rst |
 | /clang-tools-extra/trunk/test/clang-tidy/llvm-prefer-register-over-unsigned.cpp | clang-tools-extra.src/test/clang-tidy/llvm-prefer-register-over-unsigned.cpp |
 | /clang-tools-extra/trunk/test/clang-tidy/llvm-prefer-register-over-unsigned2.cpp | clang-tools-extra.src/test/clang-tidy/llvm-prefer-register-over-unsigned2.cpp |
 | /clang-tools-extra/trunk/test/clang-tidy/llvm-prefer-register-over-unsigned3.cpp | clang-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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/include/llvm/Target/TargetItinerary.td (diff) | llvm.src/include/llvm/Target/TargetItinerary.td |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/test/CodeGen/X86/avx512-broadcast-unfold.ll | llvm.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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/test/CodeGen/PowerPC/MCSE-caller-preserved-reg.ll (diff) | llvm.src/test/CodeGen/PowerPC/MCSE-caller-preserved-reg.ll |
 | /llvm/trunk/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll (diff) | llvm.src/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll |
 | /llvm/trunk/test/CodeGen/PowerPC/float-load-store-pair.ll (diff) | llvm.src/test/CodeGen/PowerPC/float-load-store-pair.ll |
 | /llvm/trunk/test/CodeGen/PowerPC/fp-int128-fp-combine.ll (diff) | llvm.src/test/CodeGen/PowerPC/fp-int128-fp-combine.ll |
 | /llvm/trunk/test/CodeGen/PowerPC/jump-tables-collapse-rotate.ll (diff) | llvm.src/test/CodeGen/PowerPC/jump-tables-collapse-rotate.ll |
 | /llvm/trunk/test/CodeGen/PowerPC/machine-pre.ll (diff) | llvm.src/test/CodeGen/PowerPC/machine-pre.ll |
 | /llvm/trunk/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll (diff) | llvm.src/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll |
 | /llvm/trunk/test/CodeGen/PowerPC/pr36292.ll (diff) | llvm.src/test/CodeGen/PowerPC/pr36292.ll |
 | /llvm/trunk/test/CodeGen/PowerPC/remove-redundant-load-imm.ll (diff) | llvm.src/test/CodeGen/PowerPC/remove-redundant-load-imm.ll |
 | /llvm/trunk/test/CodeGen/PowerPC/sms-cpy-1.ll (diff) | llvm.src/test/CodeGen/PowerPC/sms-cpy-1.ll |
 | /llvm/trunk/test/CodeGen/PowerPC/sms-phi-1.ll (diff) | llvm.src/test/CodeGen/PowerPC/sms-phi-1.ll |
 | /llvm/trunk/test/CodeGen/PowerPC/sms-phi-3.ll (diff) | llvm.src/test/CodeGen/PowerPC/sms-phi-3.ll |
 | /llvm/trunk/test/CodeGen/PowerPC/testComparesi32gtu.ll (diff) | llvm.src/test/CodeGen/PowerPC/testComparesi32gtu.ll |
 | /llvm/trunk/test/CodeGen/PowerPC/testComparesi32ltu.ll (diff) | llvm.src/test/CodeGen/PowerPC/testComparesi32ltu.ll |
 | /llvm/trunk/test/CodeGen/PowerPC/umulo-128-legalisation-lowering.ll (diff) | llvm.src/test/CodeGen/PowerPC/umulo-128-legalisation-lowering.ll |
 | /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 Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/tools/llvm-ifs/llvm-ifs.cpp (diff) | llvm.src/tools/llvm-ifs/llvm-ifs.cpp |