Revision
353601
by phosek:
[CMake] Don't set <PROJECT>_STANDALONE_BUILD We shouldn't be treating runtimes builds as standalone builds since we have enough of the context loaded into the runtimes environment. Differential Revision: https://reviews.llvm.org/D57992 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /compiler-rt/trunk/cmake/Modules/AddCompilerRT.cmake (diff) | compiler-rt.src/cmake/Modules/AddCompilerRT.cmake |
 | /llvm/trunk/runtimes/CMakeLists.txt (diff) | llvm.src/runtimes/CMakeLists.txt |
Revision
353600
by phosek:
[libcxx] Support runtimes and monorepo locations for tests The test configuration support currently searches for libc++ sources in <ROOT>/projects/libcxx. This change also additionally searches <ROOT>/runtimes/libcxx (so called runtimes layout) and <ROOT>/libcxx (monorepo layout). This matches the logic we already use in CMake, for example: https://github.com/llvm/llvm-project/blob/6fd4e7f/libcxx/CMakeLists.txt#L148 When the monorepo becomes the only supported layout in the future, we can simplify this logic again. Differential Revision: https://reviews.llvm.org/D57776 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /libcxx/trunk/utils/libcxx/test/config.py (diff) | libcxx.src/utils/libcxx/test/config.py |
Revision
353599
by dlj:
[StaticAnalyzer] Add missing include to SMTAPI.h. [NFC] This include is needed for types within SMTAPI.h. (It's very possible that compilation would succeed without it, but that's only by chance.) |
Change Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SMTAPI.h (diff) | clang.src/include/clang/StaticAnalyzer/Core/PathSensitive/SMTAPI.h |
Revision
353598
by efriedma:
Fix buildbot failure from r353569. I assumed lvalue-to-rvalue conversions of array type would never happen, but apparently clang-tidy tries in some cases. |
Change Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/lib/AST/ExprConstant.cpp (diff) | clang.src/lib/AST/ExprConstant.cpp |
Revision
353597
by hubert.reinterpretcast:
[MC] Clean up unused inline function and non-anchor defaulted destructors; NFCI Summary: Take care of some missing clean-ups that belong with r249548 and some other copy/paste that had happened. In particular, the destructors are no longer vtable anchors after r249548; and `setSectionName` in `MCSectionWasm` is private and unused since r313058 culled its only caller. The destructors are now implicitly defined, and the unused function is removed. Reviewers: nemanjai, jasonliu, grosbach Reviewed By: nemanjai Subscribers: sbc100, aheejin, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57182 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/include/llvm/MC/MCSectionCOFF.h (diff) | llvm.src/include/llvm/MC/MCSectionCOFF.h |
 | /llvm/trunk/include/llvm/MC/MCSectionELF.h (diff) | llvm.src/include/llvm/MC/MCSectionELF.h |
 | /llvm/trunk/include/llvm/MC/MCSectionWasm.h (diff) | llvm.src/include/llvm/MC/MCSectionWasm.h |
 | /llvm/trunk/lib/MC/MCSectionCOFF.cpp (diff) | llvm.src/lib/MC/MCSectionCOFF.cpp |
 | /llvm/trunk/lib/MC/MCSectionELF.cpp (diff) | llvm.src/lib/MC/MCSectionELF.cpp |
 | /llvm/trunk/lib/MC/MCSectionWasm.cpp (diff) | llvm.src/lib/MC/MCSectionWasm.cpp |
Revision
353596
by dlj:
[Fuzzer] Fix function prototype in fuzzer::ExternalFunctions. [NFC] The __sanitizer_acquire_crash_state function has int return type, but the fuzzer's external function definitions give it bool. Places where __sanitizer_acquire_crash_state is declared: include/sanitizer_common/sanitizer_interface_defs.h lib/sanitizer_common/sanitizer_interface_internal.h lib/sanitizer_common/sanitizer_common.cc lib/fuzzer/FuzzerExtFunctions.def (this is the only bool) |
Change Type | Path in Repository | Path in Workspace |
---|
 | /compiler-rt/trunk/lib/fuzzer/FuzzerExtFunctions.def (diff) | compiler-rt.src/lib/fuzzer/FuzzerExtFunctions.def |
Revision
353595
by gbuella:
Extra processing for BitCast + PHI in InstCombine For some specific cases with bitcast A->B->A with intervening PHI nodes InstCombiner::optimizeBitCastFromPhi transformation creates extra PHI nodes, which are actually a copy of already created PHI or in another words, they are redundant. These extra PHI nodes could lead to extra move instructions generated after DeSSA transformation. This happens when several conditions are met - SROA kicks in and creates new alloca; - there is a simple assignment L = R, which falls under 'canonicalize loads' done by combineLoadToOperationType (this transformation is by default). Exactly this transformation is the reason of bitcasts generated; - the alloca is then used in A->B->A + PHI chain; - there is a loop unrolling. As a result optimizeBitCastFromPhi creates as many of PHI nodes for each new SROA alloca as loop unrolling factor is. These new extra PHI nodes are redundant actually except of one and should not be created. Moreover the idea of optimizeBitCastFromPhi is to get rid of the cast (when possible) but that doesn't happen in these conditions. The proposed fix is to do the cast replacement for the whole calculated/accumulated PHI closure not for one cast only, which is an argument to the optimizeBitCastFromPhi. These will help to accomplish several things: 1) avoid extra PHI nodes generated as all casts which may trigger optimizeBitCastFromPhi transformation will be replaced, 3) bitcasts will be replaced, and 3) create more opportunities to remove dead code, which appears after the replacement. A new test case shows that it's possible to get rid of all bitcasts completely and get quite good code reduction. Author: Igor Tsimbalist <igor.v.tsimbalist@intel.com> Reviewed By: Carrot Differential Revision: https://reviews.llvm.org/D57053 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/Transforms/InstCombine/InstCombineCasts.cpp (diff) | llvm.src/lib/Transforms/InstCombine/InstCombineCasts.cpp |
 | /llvm/trunk/test/Transforms/InstCombine/cast_phi.ll | llvm.src/test/Transforms/InstCombine/cast_phi.ll |
Revision
353594
by dyung:
Temporarily disable calls to getgrnam/getgrnam_r in test due to it hitting unrelated issues in EGLIBC 2.19. |
Change Type | Path in Repository | Path in Workspace |
---|
 | /compiler-rt/trunk/test/sanitizer_common/TestCases/Posix/getpw_getgr.cc (diff) | compiler-rt.src/test/sanitizer_common/TestCases/Posix/getpw_getgr.cc |
Revision
353593
by rampitec:
[AMDGPU] Split idot4/8 signed and unsigned tests. NFC. |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/test/CodeGen/AMDGPU/idot4.ll | llvm.src/test/CodeGen/AMDGPU/idot4.ll |
 | /llvm/trunk/test/CodeGen/AMDGPU/idot4s.ll | llvm.src/test/CodeGen/AMDGPU/idot4s.ll |
 | /llvm/trunk/test/CodeGen/AMDGPU/idot4u.ll | llvm.src/test/CodeGen/AMDGPU/idot4u.ll |
 | /llvm/trunk/test/CodeGen/AMDGPU/idot8.ll | llvm.src/test/CodeGen/AMDGPU/idot8.ll |
 | /llvm/trunk/test/CodeGen/AMDGPU/idot8s.ll | llvm.src/test/CodeGen/AMDGPU/idot8s.ll |
 | /llvm/trunk/test/CodeGen/AMDGPU/idot8u.ll | llvm.src/test/CodeGen/AMDGPU/idot8u.ll |
Revision
353592
by dergachev:
[analyzer] Add a comment that FunctionCodeRegions may also need canonicalization |
Change Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/lib/StaticAnalyzer/Core/MemRegion.cpp (diff) | clang.src/lib/StaticAnalyzer/Core/MemRegion.cpp |
Revision
353590
by mramalho:
This reverts commit 1440a848a635849b97f7a5cfa0ecc40d37451f5b. and commit a1853e834c65751f92521f7481b15cf0365e796b. They broke arm and aarch64 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/CMakeLists.txt (diff) | clang.src/CMakeLists.txt |
 | /cfe/trunk/cmake/modules/FindZ3.cmake | clang.src/cmake/modules/FindZ3.cmake |
 | /cfe/trunk/include/clang/Config/config.h.cmake (diff) | clang.src/include/clang/Config/config.h.cmake |
 | /cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SMTAPI.h | clang.src/include/clang/StaticAnalyzer/Core/PathSensitive/SMTAPI.h |
 | /cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h (diff) | clang.src/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h |
 | /cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h (diff) | clang.src/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h |
 | /cfe/trunk/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp (diff) | clang.src/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp |
 | /cfe/trunk/lib/StaticAnalyzer/Core/CMakeLists.txt (diff) | clang.src/lib/StaticAnalyzer/Core/CMakeLists.txt |
 | /cfe/trunk/lib/StaticAnalyzer/Core/SMTConstraintManager.cpp | clang.src/lib/StaticAnalyzer/Core/SMTConstraintManager.cpp |
 | /cfe/trunk/lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp | clang.src/lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp |
 | /cfe/trunk/test/CMakeLists.txt (diff) | clang.src/test/CMakeLists.txt |
 | /cfe/trunk/test/lit.site.cfg.py.in (diff) | clang.src/test/lit.site.cfg.py.in |
 | /llvm/trunk/CMakeLists.txt (diff) | llvm.src/CMakeLists.txt |
 | /llvm/trunk/cmake/modules/FindZ3.cmake | llvm.src/cmake/modules/FindZ3.cmake |
 | /llvm/trunk/cmake/modules/LLVMConfig.cmake.in (diff) | llvm.src/cmake/modules/LLVMConfig.cmake.in |
 | /llvm/trunk/include/llvm/Config/config.h.cmake (diff) | llvm.src/include/llvm/Config/config.h.cmake |
 | /llvm/trunk/include/llvm/Support/SMTAPI.h | llvm.src/include/llvm/Support/SMTAPI.h |
 | /llvm/trunk/lib/Support/CMakeLists.txt (diff) | llvm.src/lib/Support/CMakeLists.txt |
 | /llvm/trunk/lib/Support/Z3Solver.cpp | llvm.src/lib/Support/Z3Solver.cpp |
Revision
353589
by paquette:
Recommit "[GlobalISel] Introduce a generic floating point floor opcode, G_FFLOOR"" After r353586, we won't fail on the AMDGPU floor pattern that was killing the importer before. |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/include/llvm/Support/TargetOpcodes.def (diff) | llvm.src/include/llvm/Support/TargetOpcodes.def |
 | /llvm/trunk/include/llvm/Target/GenericOpcodes.td (diff) | llvm.src/include/llvm/Target/GenericOpcodes.td |
 | /llvm/trunk/include/llvm/Target/GlobalISel/SelectionDAGCompat.td (diff) | llvm.src/include/llvm/Target/GlobalISel/SelectionDAGCompat.td |
 | /llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir (diff) | llvm.src/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir |
Revision
353588
by rampitec:
[AMDGPU] Split dot-insts feature Differential Revision: https://reviews.llvm.org/D57972 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/include/clang/Basic/BuiltinsAMDGPU.def (diff) | clang.src/include/clang/Basic/BuiltinsAMDGPU.def |
 | /cfe/trunk/lib/Basic/Targets/AMDGPU.cpp (diff) | clang.src/lib/Basic/Targets/AMDGPU.cpp |
 | /cfe/trunk/test/CodeGenOpenCL/amdgpu-features.cl (diff) | clang.src/test/CodeGenOpenCL/amdgpu-features.cl |
 | /cfe/trunk/test/CodeGenOpenCL/builtins-amdgcn-dl-insts-err.cl (diff) | clang.src/test/CodeGenOpenCL/builtins-amdgcn-dl-insts-err.cl |
Revision
353587
by rampitec:
[AMDGPU] Split dot-insts feature Differential Revision: https://reviews.llvm.org/D57971 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/Target/AMDGPU/AMDGPU.td (diff) | llvm.src/lib/Target/AMDGPU/AMDGPU.td |
 | /llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpp (diff) | llvm.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp |
 | /llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.h (diff) | llvm.src/lib/Target/AMDGPU/AMDGPUSubtarget.h |
 | /llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp (diff) | llvm.src/lib/Target/AMDGPU/SIISelLowering.cpp |
 | /llvm/trunk/lib/Target/AMDGPU/VOP3PInstructions.td (diff) | llvm.src/lib/Target/AMDGPU/VOP3PInstructions.td |
Revision
353586
by paquette:
[GlobalISel] Skip patterns that define complex suboperands twice instead of dying If we run into a pattern that looks like this: add (complex $x, $y) (complex $x, $z) We should skip the pattern instead of asserting/doing something unpredictable. This makes us return an Error in that case, and adds a testcase for skipped patterns. Differential Revision: https://reviews.llvm.org/D57980 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/test/TableGen/GlobalISelEmitterSkippedPatterns.td | llvm.src/test/TableGen/GlobalISelEmitterSkippedPatterns.td |
 | /llvm/trunk/utils/TableGen/GlobalISelEmitter.cpp (diff) | llvm.src/utils/TableGen/GlobalISelEmitter.cpp |
|
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/utils/gn/secondary/clang/lib/StaticAnalyzer/Checkers/BUILD.gn (diff) | llvm.src/utils/gn/secondary/clang/lib/StaticAnalyzer/Checkers/BUILD.gn |
Revision
353584
by kcc:
[libFuzzer] more refactoring; change some of the exit codes (timeout, OOM, interrupt) so that the parent process can distinguish those |
Change Type | Path in Repository | Path in Workspace |
---|
 | /compiler-rt/trunk/lib/fuzzer/FuzzerDriver.cpp (diff) | compiler-rt.src/lib/fuzzer/FuzzerDriver.cpp |
 | /compiler-rt/trunk/lib/fuzzer/FuzzerLoop.cpp (diff) | compiler-rt.src/lib/fuzzer/FuzzerLoop.cpp |
 | /compiler-rt/trunk/lib/fuzzer/FuzzerMerge.cpp (diff) | compiler-rt.src/lib/fuzzer/FuzzerMerge.cpp |
 | /compiler-rt/trunk/lib/fuzzer/FuzzerMerge.h (diff) | compiler-rt.src/lib/fuzzer/FuzzerMerge.h |
 | /compiler-rt/trunk/lib/fuzzer/FuzzerOptions.h (diff) | compiler-rt.src/lib/fuzzer/FuzzerOptions.h |
 | /compiler-rt/trunk/lib/fuzzer/tests/FuzzerUnittest.cpp (diff) | compiler-rt.src/lib/fuzzer/tests/FuzzerUnittest.cpp |
Revision
353583
by dergachev:
[analyzer] CStringSyntaxChecks: Fix an off-by-one error in the strlcat() check. oth strlcat and strlcpy cut off their safe bound for the argument value at sizeof(destination). There's no need to subtract 1 in only one of these cases. Differential Revision: https://reviews.llvm.org/D57981 rdar://problem/47873212 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp (diff) | clang.src/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp |
 | /cfe/trunk/test/Analysis/cstring-syntax.c (diff) | clang.src/test/Analysis/cstring-syntax.c |
Revision
353582
by sdmitriev:
[NFC] Avoid passing blocks vector to the OutlineRegionInfo constructor by value. Reviewers: vsk, fhahn, davidxl Reviewed By: vsk Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57957 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/Transforms/IPO/PartialInlining.cpp (diff) | llvm.src/lib/Transforms/IPO/PartialInlining.cpp |
Revision
353580
by spatel:
[x86] add test for miscompiling setcc transform (PR40657); NFC |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/test/CodeGen/X86/setcc-combine.ll (diff) | llvm.src/test/CodeGen/X86/setcc-combine.ll |
Revision
353579
by thegameg:
Re-apply r353553 "[GISel][NFC]: Add missing call to record CSE hits in the CSEMIRBuilder" With a fix after r353563 that adds some more opcodes. |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/CodeGen/GlobalISel/CSEInfo.cpp (diff) | llvm.src/lib/CodeGen/GlobalISel/CSEInfo.cpp |
 | /llvm/trunk/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp (diff) | llvm.src/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp |
 | /llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-ext-csedebug-output.mir | llvm.src/test/CodeGen/AArch64/GlobalISel/legalize-ext-csedebug-output.mir |
Revision
353578
by adrian:
-gmodules: Don't emit incomplete breadcrumbs pointing to nonexistant PCM files. When a module name is specified as -fmodule-name, that module gets a clang::Module object, but it won't actually be built or imported; it will be textual. CGDebugInfo wouldn't detect this and them emit a DICompileUnit that had a hash but no name and that confused both dsymutil, LLDB, and myself. rdar://problem/47926508 Differential Revision: https://reviews.llvm.org/D57976 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (diff) | clang.src/lib/CodeGen/CGDebugInfo.cpp |
 | /cfe/trunk/test/Modules/DebugInfo-fmodule-name.c | clang.src/test/Modules/DebugInfo-fmodule-name.c |
Revision
353577
by vsapsai:
[CodeGen][ObjC] Fix assert on calling `__builtin_constant_p` with ObjC objects. When we are calling `__builtin_constant_p` with ObjC objects of different classes, we hit the assertion > Assertion failed: (isa<X>(Val) && "cast<Ty>() argument of incompatible type!"), function cast, file include/llvm/Support/Casting.h, line 254. It happens because LLVM types for `ObjCInterfaceType` are opaque and have no name (see `CodeGenTypes::ConvertType`). As the result, for different ObjC classes we have different `is_constant` intrinsics with the same name `llvm.is.constant.p0s_s`. When we try to reuse an intrinsic with the same name, we fail because of type mismatch. Fix by bitcasting `ObjCObjectPointerType` to `id` prior to passing as an argument to `__builtin_constant_p`. This results in using intrinsic `llvm.is.constant.p0i8` and correct types. rdar://problem/47499250 Reviewers: rjmccall, ahatanak, void Reviewed By: void, ahatanak Subscribers: ddunbar, jkorous, hans, dexonsmith, cfe-commits Differential Revision: https://reviews.llvm.org/D57427 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/lib/CodeGen/CGBuiltin.cpp (diff) | clang.src/lib/CodeGen/CGBuiltin.cpp |
 | /cfe/trunk/test/CodeGenObjC/builtin-constant-p.m | clang.src/test/CodeGenObjC/builtin-constant-p.m |
Revision
353576
by kcc:
[libFuzzer] refactor the merging code, NFC |
Change Type | Path in Repository | Path in Workspace |
---|
 | /compiler-rt/trunk/lib/fuzzer/FuzzerDriver.cpp (diff) | compiler-rt.src/lib/fuzzer/FuzzerDriver.cpp |
 | /compiler-rt/trunk/lib/fuzzer/FuzzerMerge.cpp (diff) | compiler-rt.src/lib/fuzzer/FuzzerMerge.cpp |
 | /compiler-rt/trunk/lib/fuzzer/FuzzerMerge.h (diff) | compiler-rt.src/lib/fuzzer/FuzzerMerge.h |
Revision
353575
by thegameg:
Revert r353553 "[GISel][NFC]: Add missing call to record CSE hits in the CSEMIRBuilder" This reverts commit r353553. This breaks CodeGen/AArch64/GlobalISel/legalize-ext-csedebug-output.mir: http://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-incremental/57963/console |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/CodeGen/GlobalISel/CSEInfo.cpp (diff) | llvm.src/lib/CodeGen/GlobalISel/CSEInfo.cpp |
 | /llvm/trunk/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp (diff) | llvm.src/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp |
 | /llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-ext-csedebug-output.mir | llvm.src/test/CodeGen/AArch64/GlobalISel/legalize-ext-csedebug-output.mir |
Revision
353573
by kcc:
[libFuzzer] remove two unused experimental flags |
Change Type | Path in Repository | Path in Workspace |
---|
 | /compiler-rt/trunk/lib/fuzzer/FuzzerDriver.cpp (diff) | compiler-rt.src/lib/fuzzer/FuzzerDriver.cpp |
 | /compiler-rt/trunk/lib/fuzzer/FuzzerFlags.def (diff) | compiler-rt.src/lib/fuzzer/FuzzerFlags.def |
 | /compiler-rt/trunk/lib/fuzzer/FuzzerMerge.cpp (diff) | compiler-rt.src/lib/fuzzer/FuzzerMerge.cpp |
 | /compiler-rt/trunk/lib/fuzzer/FuzzerMerge.h (diff) | compiler-rt.src/lib/fuzzer/FuzzerMerge.h |
 | /compiler-rt/trunk/lib/fuzzer/tests/FuzzerUnittest.cpp (diff) | compiler-rt.src/lib/fuzzer/tests/FuzzerUnittest.cpp |
 | /compiler-rt/trunk/test/fuzzer/merge-control-file.test (diff) | compiler-rt.src/test/fuzzer/merge-control-file.test |
 | /compiler-rt/trunk/test/fuzzer/merge-summary.test | compiler-rt.src/test/fuzzer/merge-summary.test |
Revision
353571
by efriedma:
[CodeGen][NFC] Update comments in CGExprConstant.cpp. |
Change Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/lib/CodeGen/CGExprConstant.cpp (diff) | clang.src/lib/CodeGen/CGExprConstant.cpp |
Revision
353570
by kcc:
[libFuzzer] introduce an experimental mode -fork=1, where fuzzing happens in a subprocess (still running multiple inputs per process), thus making the fuzzing more resilient to timeouts and OOMs. This is just a skeleton of the code, and some associated refactoring, not a fully working feature yet. |
Change Type | Path in Repository | Path in Workspace |
---|
 | /compiler-rt/trunk/lib/fuzzer/FuzzerDriver.cpp (diff) | compiler-rt.src/lib/fuzzer/FuzzerDriver.cpp |
 | /compiler-rt/trunk/lib/fuzzer/FuzzerFlags.def (diff) | compiler-rt.src/lib/fuzzer/FuzzerFlags.def |
 | /compiler-rt/trunk/lib/fuzzer/FuzzerInternal.h (diff) | compiler-rt.src/lib/fuzzer/FuzzerInternal.h |
 | /compiler-rt/trunk/lib/fuzzer/FuzzerLoop.cpp (diff) | compiler-rt.src/lib/fuzzer/FuzzerLoop.cpp |
 | /compiler-rt/trunk/lib/fuzzer/FuzzerMerge.cpp (diff) | compiler-rt.src/lib/fuzzer/FuzzerMerge.cpp |
 | /compiler-rt/trunk/lib/fuzzer/FuzzerMerge.h (diff) | compiler-rt.src/lib/fuzzer/FuzzerMerge.h |
 | /compiler-rt/trunk/lib/fuzzer/tests/FuzzerUnittest.cpp (diff) | compiler-rt.src/lib/fuzzer/tests/FuzzerUnittest.cpp |
Revision
353569
by efriedma:
[Sema] Make string literal init an rvalue. This allows substantially simplifying the expression evaluation code, because we don't have to special-case lvalues which are actually string literal initialization. This currently throws away an optimization where we would avoid creating an array APValue for string literal initialization. If we really want to optimize this case, we should fix APValue so it can store simple arrays more efficiently, like llvm::ConstantDataArray. This shouldn't affect the memory usage for other string literals. (Not sure if this is a blocker; I don't think string literal init is common enough for this to be a serious issue, but I could be wrong.) The change to test/CodeGenObjC/encode-test.m is a weird side-effect of these changes: we currently don't constant-evaluate arrays in C, so the strlen call shouldn't be folded, but lvalue string init managed to get around that check. I this this is fine. Fixes https://bugs.llvm.org/show_bug.cgi?id=40430 . |
Change Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/lib/AST/ExprConstant.cpp (diff) | clang.src/lib/AST/ExprConstant.cpp |
 | /cfe/trunk/lib/CodeGen/CGExprConstant.cpp (diff) | clang.src/lib/CodeGen/CGExprConstant.cpp |
 | /cfe/trunk/lib/Sema/SemaInit.cpp (diff) | clang.src/lib/Sema/SemaInit.cpp |
 | /cfe/trunk/test/AST/ast-dump-wchar.cpp (diff) | clang.src/test/AST/ast-dump-wchar.cpp |
 | /cfe/trunk/test/CodeGenObjC/encode-test.m (diff) | clang.src/test/CodeGenObjC/encode-test.m |
 | /cfe/trunk/test/SemaCXX/constant-expression-cxx11.cpp (diff) | clang.src/test/SemaCXX/constant-expression-cxx11.cpp |
|
Change Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/include/clang/Basic/LangOptions.h (diff) | clang.src/include/clang/Basic/LangOptions.h |
Revision
353567
by ctopper:
[Docs] Use code-block:: text for part of the callbr documentation to attempt to make the bot happy. |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/docs/LangRef.rst (diff) | llvm.src/docs/LangRef.rst |
Revision
353566
by george.karpenkov:
[analyzer] Opt-in C Style Cast Checker for OSObject pointers Differential Revision: https://reviews.llvm.org/D57261 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/include/clang/StaticAnalyzer/Checkers/Checkers.td (diff) | clang.src/include/clang/StaticAnalyzer/Checkers/Checkers.td |
 | /cfe/trunk/lib/StaticAnalyzer/Checkers/CMakeLists.txt (diff) | clang.src/lib/StaticAnalyzer/Checkers/CMakeLists.txt |
 | /cfe/trunk/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp | clang.src/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp |
 | /cfe/trunk/test/Analysis/osobjectcstylecastchecker_test.cpp | clang.src/test/Analysis/osobjectcstylecastchecker_test.cpp |
Revision
353564
by ctopper:
[X86] Add FPCW as an implicit use on floating point load instructions. These instructions can generate a stack overflow exception so technically they read the stack overflow exception mask bit. |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/Target/X86/X86InstrFPStack.td (diff) | llvm.src/lib/Target/X86/X86InstrFPStack.td |
 | /llvm/trunk/test/CodeGen/MIR/X86/memory-operands.mir (diff) | llvm.src/test/CodeGen/MIR/X86/memory-operands.mir |
 | /llvm/trunk/test/CodeGen/X86/pr34080.ll (diff) | llvm.src/test/CodeGen/X86/pr34080.ll |
 | /llvm/trunk/test/CodeGen/X86/pr40529.ll (diff) | llvm.src/test/CodeGen/X86/pr40529.ll |
Revision
353563
by ctopper:
Implementation of asm-goto support in LLVM This patch accompanies the RFC posted here: http://lists.llvm.org/pipermail/llvm-dev/2018-October/127239.html This patch adds a new CallBr IR instruction to support asm-goto inline assembly like gcc as used by the linux kernel. This instruction is both a call instruction and a terminator instruction with multiple successors. Only inline assembly usage is supported today. This also adds a new INLINEASM_BR opcode to SelectionDAG and MachineIR to represent an INLINEASM block that is also considered a terminator instruction. There will likely be more bug fixes and optimizations to follow this, but we felt it had reached a point where we would like to switch to an incremental development model. Patch by Craig Topper, Alexander Ivchenko, Mikhail Dvoretckii Differential Revision: https://reviews.llvm.org/D53765 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/docs/LangRef.rst (diff) | llvm.src/docs/LangRef.rst |
 | /llvm/trunk/include/llvm-c/Core.h (diff) | llvm.src/include/llvm-c/Core.h |
 | /llvm/trunk/include/llvm/Analysis/SparsePropagation.h (diff) | llvm.src/include/llvm/Analysis/SparsePropagation.h |
 | /llvm/trunk/include/llvm/Bitcode/LLVMBitCodes.h (diff) | llvm.src/include/llvm/Bitcode/LLVMBitCodes.h |
 | /llvm/trunk/include/llvm/CodeGen/GlobalISel/IRTranslator.h (diff) | llvm.src/include/llvm/CodeGen/GlobalISel/IRTranslator.h |
 | /llvm/trunk/include/llvm/CodeGen/ISDOpcodes.h (diff) | llvm.src/include/llvm/CodeGen/ISDOpcodes.h |
 | /llvm/trunk/include/llvm/CodeGen/MachineInstr.h (diff) | llvm.src/include/llvm/CodeGen/MachineInstr.h |
 | /llvm/trunk/include/llvm/CodeGen/SelectionDAGISel.h (diff) | llvm.src/include/llvm/CodeGen/SelectionDAGISel.h |
 | /llvm/trunk/include/llvm/IR/CallSite.h (diff) | llvm.src/include/llvm/IR/CallSite.h |
 | /llvm/trunk/include/llvm/IR/IRBuilder.h (diff) | llvm.src/include/llvm/IR/IRBuilder.h |
 | /llvm/trunk/include/llvm/IR/InstVisitor.h (diff) | llvm.src/include/llvm/IR/InstVisitor.h |
 | /llvm/trunk/include/llvm/IR/InstrTypes.h (diff) | llvm.src/include/llvm/IR/InstrTypes.h |
 | /llvm/trunk/include/llvm/IR/Instruction.def (diff) | llvm.src/include/llvm/IR/Instruction.def |
 | /llvm/trunk/include/llvm/IR/Instruction.h (diff) | llvm.src/include/llvm/IR/Instruction.h |
 | /llvm/trunk/include/llvm/IR/Instructions.h (diff) | llvm.src/include/llvm/IR/Instructions.h |
 | /llvm/trunk/include/llvm/Support/TargetOpcodes.def (diff) | llvm.src/include/llvm/Support/TargetOpcodes.def |
 | /llvm/trunk/include/llvm/Target/Target.td (diff) | llvm.src/include/llvm/Target/Target.td |
 | /llvm/trunk/lib/Analysis/ValueTracking.cpp (diff) | llvm.src/lib/Analysis/ValueTracking.cpp |
 | /llvm/trunk/lib/AsmParser/LLLexer.cpp (diff) | llvm.src/lib/AsmParser/LLLexer.cpp |
 | /llvm/trunk/lib/AsmParser/LLParser.cpp (diff) | llvm.src/lib/AsmParser/LLParser.cpp |
 | /llvm/trunk/lib/AsmParser/LLParser.h (diff) | llvm.src/lib/AsmParser/LLParser.h |
 | /llvm/trunk/lib/AsmParser/LLToken.h (diff) | llvm.src/lib/AsmParser/LLToken.h |
 | /llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp (diff) | llvm.src/lib/Bitcode/Reader/BitcodeReader.cpp |
 | /llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp (diff) | llvm.src/lib/Bitcode/Writer/BitcodeWriter.cpp |
 | /llvm/trunk/lib/Bitcode/Writer/ValueEnumerator.cpp (diff) | llvm.src/lib/Bitcode/Writer/ValueEnumerator.cpp |
 | /llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (diff) | llvm.src/lib/CodeGen/AsmPrinter/AsmPrinter.cpp |
 | /llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp (diff) | llvm.src/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp |
 | /llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp (diff) | llvm.src/lib/CodeGen/CodeGenPrepare.cpp |
 | /llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp (diff) | llvm.src/lib/CodeGen/GlobalISel/IRTranslator.cpp |
 | /llvm/trunk/lib/CodeGen/IndirectBrExpandPass.cpp (diff) | llvm.src/lib/CodeGen/IndirectBrExpandPass.cpp |
 | /llvm/trunk/lib/CodeGen/SelectionDAG/InstrEmitter.cpp (diff) | llvm.src/lib/CodeGen/SelectionDAG/InstrEmitter.cpp |
 | /llvm/trunk/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp (diff) | llvm.src/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp |
 | /llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp (diff) | llvm.src/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp |
 | /llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp (diff) | llvm.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp |
 | /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff) | llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp |
 | /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h (diff) | llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h |
 | /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp (diff) | llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp |
 | /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (diff) | llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp |
 | /llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cpp (diff) | llvm.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp |
 | /llvm/trunk/lib/CodeGen/TargetLoweringBase.cpp (diff) | llvm.src/lib/CodeGen/TargetLoweringBase.cpp |
 | /llvm/trunk/lib/IR/AsmWriter.cpp (diff) | llvm.src/lib/IR/AsmWriter.cpp |
 | /llvm/trunk/lib/IR/Instruction.cpp (diff) | llvm.src/lib/IR/Instruction.cpp |
 | /llvm/trunk/lib/IR/Instructions.cpp (diff) | llvm.src/lib/IR/Instructions.cpp |
 | /llvm/trunk/lib/IR/Value.cpp (diff) | llvm.src/lib/IR/Value.cpp |
 | /llvm/trunk/lib/IR/Verifier.cpp (diff) | llvm.src/lib/IR/Verifier.cpp |
 | /llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cpp (diff) | llvm.src/lib/Target/AMDGPU/AMDGPUISelLowering.cpp |
 | /llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp (diff) | llvm.src/lib/Target/AMDGPU/SIISelLowering.cpp |
 | /llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cpp (diff) | llvm.src/lib/Target/AMDGPU/SIInstrInfo.cpp |
 | /llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp (diff) | llvm.src/lib/Target/ARM/ARMISelDAGToDAG.cpp |
 | /llvm/trunk/lib/Target/AVR/AVRInstrInfo.cpp (diff) | llvm.src/lib/Target/AVR/AVRInstrInfo.cpp |
 | /llvm/trunk/lib/Target/Hexagon/HexagonISelLowering.cpp (diff) | llvm.src/lib/Target/Hexagon/HexagonISelLowering.cpp |
 | /llvm/trunk/lib/Target/Hexagon/HexagonMachineScheduler.cpp (diff) | llvm.src/lib/Target/Hexagon/HexagonMachineScheduler.cpp |
 | /llvm/trunk/lib/Target/MSP430/MSP430InstrInfo.cpp (diff) | llvm.src/lib/Target/MSP430/MSP430InstrInfo.cpp |
 | /llvm/trunk/lib/Target/Mips/MipsInstrInfo.cpp (diff) | llvm.src/lib/Target/Mips/MipsInstrInfo.cpp |
 | /llvm/trunk/lib/Target/PowerPC/PPCRegisterInfo.cpp (diff) | llvm.src/lib/Target/PowerPC/PPCRegisterInfo.cpp |
 | /llvm/trunk/lib/Target/RISCV/RISCVInstrInfo.cpp (diff) | llvm.src/lib/Target/RISCV/RISCVInstrInfo.cpp |
 | /llvm/trunk/lib/Target/Sparc/SparcISelDAGToDAG.cpp (diff) | llvm.src/lib/Target/Sparc/SparcISelDAGToDAG.cpp |
 | /llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp (diff) | llvm.src/lib/Target/X86/X86AsmPrinter.cpp |
 | /llvm/trunk/lib/Target/X86/X86FloatingPoint.cpp (diff) | llvm.src/lib/Target/X86/X86FloatingPoint.cpp |
 | /llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp (diff) | llvm.src/lib/Transforms/InstCombine/InstCombineCalls.cpp |
 | /llvm/trunk/lib/Transforms/InstCombine/InstCombineInternal.h (diff) | llvm.src/lib/Transforms/InstCombine/InstCombineInternal.h |
 | /llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp (diff) | llvm.src/lib/Transforms/InstCombine/InstructionCombining.cpp |
 | /llvm/trunk/lib/Transforms/Scalar/GVN.cpp (diff) | llvm.src/lib/Transforms/Scalar/GVN.cpp |
 | /llvm/trunk/lib/Transforms/Scalar/JumpThreading.cpp (diff) | llvm.src/lib/Transforms/Scalar/JumpThreading.cpp |
 | /llvm/trunk/lib/Transforms/Scalar/SCCP.cpp (diff) | llvm.src/lib/Transforms/Scalar/SCCP.cpp |
 | /llvm/trunk/lib/Transforms/Utils/BasicBlockUtils.cpp (diff) | llvm.src/lib/Transforms/Utils/BasicBlockUtils.cpp |
 | /llvm/trunk/lib/Transforms/Utils/BreakCriticalEdges.cpp (diff) | llvm.src/lib/Transforms/Utils/BreakCriticalEdges.cpp |
 | /llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp (diff) | llvm.src/lib/Transforms/Utils/InlineFunction.cpp |
 | /llvm/trunk/lib/Transforms/Utils/Local.cpp (diff) | llvm.src/lib/Transforms/Utils/Local.cpp |
 | /llvm/trunk/lib/Transforms/Utils/LoopSimplify.cpp (diff) | llvm.src/lib/Transforms/Utils/LoopSimplify.cpp |
 | /llvm/trunk/lib/Transforms/Utils/LoopUtils.cpp (diff) | llvm.src/lib/Transforms/Utils/LoopUtils.cpp |
 | /llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp (diff) | llvm.src/lib/Transforms/Utils/SimplifyCFG.cpp |
 | /llvm/trunk/test/Bitcode/callbr.ll | llvm.src/test/Bitcode/callbr.ll |
 | /llvm/trunk/test/Bitcode/callbr.ll.bc | llvm.src/test/Bitcode/callbr.ll.bc |
 | /llvm/trunk/test/CodeGen/X86/callbr-asm-blockplacement.ll | llvm.src/test/CodeGen/X86/callbr-asm-blockplacement.ll |
 | /llvm/trunk/test/CodeGen/X86/callbr-asm-branch-folding.ll | llvm.src/test/CodeGen/X86/callbr-asm-branch-folding.ll |
 | /llvm/trunk/test/CodeGen/X86/callbr-asm-destinations.ll | llvm.src/test/CodeGen/X86/callbr-asm-destinations.ll |
 | /llvm/trunk/test/CodeGen/X86/callbr-asm-errors.ll | llvm.src/test/CodeGen/X86/callbr-asm-errors.ll |
 | /llvm/trunk/test/CodeGen/X86/callbr-asm-outputs.ll | llvm.src/test/CodeGen/X86/callbr-asm-outputs.ll |
 | /llvm/trunk/test/CodeGen/X86/callbr-asm.ll | llvm.src/test/CodeGen/X86/callbr-asm.ll |
 | /llvm/trunk/test/Transforms/GVN/callbr-loadpre-critedge.ll | llvm.src/test/Transforms/GVN/callbr-loadpre-critedge.ll |
 | /llvm/trunk/test/Transforms/GVN/callbr-scalarpre-critedge.ll | llvm.src/test/Transforms/GVN/callbr-scalarpre-critedge.ll |
 | /llvm/trunk/test/Transforms/JumpThreading/callbr-edge-split.ll | llvm.src/test/Transforms/JumpThreading/callbr-edge-split.ll |
 | /llvm/trunk/test/Transforms/MergeFunc/call-and-invoke-with-ranges.ll (diff) | llvm.src/test/Transforms/MergeFunc/call-and-invoke-with-ranges.ll |
 | /llvm/trunk/test/Transforms/MergeFunc/inline-asm.ll (diff) | llvm.src/test/Transforms/MergeFunc/inline-asm.ll |
 | /llvm/trunk/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp (diff) | llvm.src/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp |
 | /llvm/trunk/utils/vim/syntax/llvm.vim (diff) | llvm.src/utils/vim/syntax/llvm.vim |
Revision
353562
by vedantk:
[CodeExtractor] Restore outputs after creating exit stubs When CodeExtractor saves the result of InvokeInst at the first insertion point of the 'normal destination' basic block, this block can be omitted in the outlined region, so store is placed outside of the function. The suggested solution is to process saving outputs after creating exit stubs for new function, and stores will be placed in that blocks before return in this case. Patch by Sergei Kachkov! Fixes llvm.org/PR40455. Differential Revision: https://reviews.llvm.org/D57919 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/Transforms/Utils/CodeExtractor.cpp (diff) | llvm.src/lib/Transforms/Utils/CodeExtractor.cpp |
 | /llvm/trunk/unittests/Transforms/Utils/CodeExtractorTest.cpp (diff) | llvm.src/unittests/Transforms/Utils/CodeExtractorTest.cpp |
Revision
353561
by vitalybuka:
Fix Die() after pthread_exit call on macOS Summary: Scoped interceptor should not be used when calling real pthread_exit(). On macOS C++ destructors are not called by pthread_exit(), and later check for empty thread ignore set fails. Patch by Yuri Per. Reviewers: dvyukov, vitalybuka Reviewed By: vitalybuka Subscribers: vitalybuka, thegameg, kubamracek, jfb, llvm-commits, #sanitizers Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D57963 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.cc (diff) | compiler-rt.src/lib/tsan/rtl/tsan_interceptors.cc |
Revision
353560
by thegameg:
[InstrProf] Fix darwin errors after r353547 The macros were changed but not updated in the Darwin version. Fail here: http://green.lab.llvm.org/green/job/clang-stage1-configure-RA/53739/ rdar://47925820 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /compiler-rt/trunk/lib/profile/InstrProfilingPlatformDarwin.c (diff) | compiler-rt.src/lib/profile/InstrProfilingPlatformDarwin.c |
Revision
353559
by arsenm:
AMDGPU/GlobalISel: Fix broken tests |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fabs.mir (diff) | llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fabs.mir |
 | /llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fsqrt.mir (diff) | llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fsqrt.mir |
Revision
353558
by arsenm:
AMDGPU: Eliminate GPU specific SubtargetFeatures Inline compatability is determined from the individual feature bits. These are just sets of the separate features, but will always be treated as incompatible unless they are specifically ignored. Defining the ISA version number here in tablegen would be nice, but it turns out this wasn't actually used. |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/Target/AMDGPU/AMDGPU.td (diff) | llvm.src/lib/Target/AMDGPU/AMDGPU.td |
 | /llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpp (diff) | llvm.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp |
 | /llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.h (diff) | llvm.src/lib/Target/AMDGPU/AMDGPUSubtarget.h |
 | /llvm/trunk/lib/Target/AMDGPU/GCNProcessors.td (diff) | llvm.src/lib/Target/AMDGPU/GCNProcessors.td |
Revision
353557
by nemanjai:
[DAGCombine] Optimize pow(X, 0.75) to sqrt(X) * sqrt(sqrt(X)) The sqrt case is faster and we already do this for the case where the exponent is 0.25. This adds the 0.75 case which is also not sensitive to signed zeros. Patch by Whitney Tsang (Whitney) Differential revision: https://reviews.llvm.org/D57434 |
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/AArch64/pow.75.ll | llvm.src/test/CodeGen/AArch64/pow.75.ll |
 | /llvm/trunk/test/CodeGen/ARM/pow.75.ll | llvm.src/test/CodeGen/ARM/pow.75.ll |
 | /llvm/trunk/test/CodeGen/PowerPC/pow.75.ll | llvm.src/test/CodeGen/PowerPC/pow.75.ll |
 | /llvm/trunk/test/CodeGen/X86/pow.75.ll | llvm.src/test/CodeGen/X86/pow.75.ll |
Revision
353556
by ahatanak:
Pass the base element type of an array type to the visit method instead of the array type itself. This fixes a bug found by inspection that was introduced in r353459. I don't have a test case for this since we don't yet have types that would make the containing C struct non-trivial to copy/move but wouldn't make it non-trivial to default-initialize or destruct. |
Change Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/lib/AST/Type.cpp (diff) | clang.src/lib/AST/Type.cpp |
Revision
353555
by ctopper:
[X86] Add explicit alignment to __m128/__m128i/__m128d/etc. to allow matching of MSVC behavior with #pragma pack. Summary: With MSVC, #pragma pack is ignored when there is explicit alignment. This differs from gcc. Clang emulates this difference when compiling for Windows. It appears that MSVC and its headers consider the __m128/__m128i/__m128d/etc. types to be explicitly aligned and ignores #pragma pack for them. Since we don't have explicit alignment on them in our headers, we don't match the MSVC behavior here. This patch adds explicit alignment to match this behavior. I'm hoping this won't cause any problems when we're not emulating MSVC. But if someone knows of something that would be different we can swith to conditionally adding the alignment based on _MSC_VER. I had to add explicitly unaligned types as well so we could use them in the loadu/storeu intrinsics which use __attribute__(__packed__). Using the now explicitly aligned types wouldn't produce align 1 accesses when targeting Windows. Reviewers: rnk, erichkeane, spatel, RKSimon Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D57961 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /cfe/trunk/lib/Headers/avx512bwintrin.h (diff) | clang.src/lib/Headers/avx512bwintrin.h |
 | /cfe/trunk/lib/Headers/avx512fintrin.h (diff) | clang.src/lib/Headers/avx512fintrin.h |
 | /cfe/trunk/lib/Headers/avx512vlbwintrin.h (diff) | clang.src/lib/Headers/avx512vlbwintrin.h |
 | /cfe/trunk/lib/Headers/avx512vlintrin.h (diff) | clang.src/lib/Headers/avx512vlintrin.h |
 | /cfe/trunk/lib/Headers/avxintrin.h (diff) | clang.src/lib/Headers/avxintrin.h |
 | /cfe/trunk/lib/Headers/emmintrin.h (diff) | clang.src/lib/Headers/emmintrin.h |
 | /cfe/trunk/lib/Headers/mmintrin.h (diff) | clang.src/lib/Headers/mmintrin.h |
 | /cfe/trunk/lib/Headers/xmmintrin.h (diff) | clang.src/lib/Headers/xmmintrin.h |
 | /cfe/trunk/test/CodeGen/x86-vec-struct-packing.c | clang.src/test/CodeGen/x86-vec-struct-packing.c |
Revision
353554
by malcolm.parsons:
[clang-tidy] Don't use assignment for value-initialized enums Summary: The modernize-use-default-member-init check crashes when trying to create an assignment value for a value-initialized enum because it isn't a BuiltinType. An enum cannot be initialized by assigning 0 to it unless a cast is added. It could be initialized with an enumerator with the value 0, but there might not be one. Avoid these issues by ignoring the UseAssignment setting for value-initialized enums. Fixes PR35050. Reviewers: aaron.ballman, alexfh, JonasToth Reviewed By: JonasToth Subscribers: xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D57852 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /clang-tools-extra/trunk/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp (diff) | clang-tools-extra.src/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp |
 | /clang-tools-extra/trunk/test/clang-tidy/modernize-use-default-member-init-assignment.cpp (diff) | clang-tools-extra.src/test/clang-tidy/modernize-use-default-member-init-assignment.cpp |
 | /clang-tools-extra/trunk/test/clang-tidy/modernize-use-default-member-init.cpp (diff) | clang-tools-extra.src/test/clang-tidy/modernize-use-default-member-init.cpp |
Revision
353553
by aditya_nandakumar:
[GISel][NFC]: Add missing call to record CSE hits in the CSEMIRBuilder https://reviews.llvm.org/D57932 Add some logging + tests to make sure CSEInfo prints debug output. reviewed by: arsenm |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/CodeGen/GlobalISel/CSEInfo.cpp (diff) | llvm.src/lib/CodeGen/GlobalISel/CSEInfo.cpp |
 | /llvm/trunk/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp (diff) | llvm.src/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp |
 | /llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-ext-csedebug-output.mir | llvm.src/test/CodeGen/AArch64/GlobalISel/legalize-ext-csedebug-output.mir |
Revision
353552
by vitalybuka:
[tsan] Remove SCOPED_TSAN_INTERCEPTOR to try to fix ppc bot |
Change Type | Path in Repository | Path in Workspace |
---|
 | /compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.cc (diff) | compiler-rt.src/lib/tsan/rtl/tsan_interceptors.cc |
Revision
353551
by metzman:
Document libFuzzer on Windows. Summary: Document that libFuzzer supports Windows, how to get it, and its limitations. Reviewers: kcc, morehouse, rnk, metzman Reviewed By: kcc, rnk, metzman Subscribers: hans, rnk Differential Revision: https://reviews.llvm.org/D57597 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/docs/LibFuzzer.rst (diff) | llvm.src/docs/LibFuzzer.rst |
Revision
353550
by xur:
[Cmake] Add an option to build LLVM using the experimental new pass manager Add LLVM_USE_NEWPM to build LLVM using the experimental new pass manager. Differential Revision: http://reviews.llvm.org/D57068 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/cmake/modules/HandleLLVMOptions.cmake (diff) | llvm.src/cmake/modules/HandleLLVMOptions.cmake |
 | /llvm/trunk/docs/CMake.rst (diff) | llvm.src/docs/CMake.rst |
Revision
353548
by arsenm:
AMDGPU: Remove GCN features and predicates These are no longer necessary since the R600 tablegen files are split out now. |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/Target/AMDGPU/AMDGPU.td (diff) | llvm.src/lib/Target/AMDGPU/AMDGPU.td |
 | /llvm/trunk/lib/Target/AMDGPU/AMDGPUInstructions.td (diff) | llvm.src/lib/Target/AMDGPU/AMDGPUInstructions.td |
 | /llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpp (diff) | llvm.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp |
 | /llvm/trunk/lib/Target/AMDGPU/DSInstructions.td (diff) | llvm.src/lib/Target/AMDGPU/DSInstructions.td |
 | /llvm/trunk/lib/Target/AMDGPU/GCNProcessors.td (diff) | llvm.src/lib/Target/AMDGPU/GCNProcessors.td |
 | /llvm/trunk/lib/Target/AMDGPU/MIMGInstructions.td (diff) | llvm.src/lib/Target/AMDGPU/MIMGInstructions.td |
 | /llvm/trunk/lib/Target/AMDGPU/SIInstrFormats.td (diff) | llvm.src/lib/Target/AMDGPU/SIInstrFormats.td |
 | /llvm/trunk/lib/Target/AMDGPU/SIInstructions.td (diff) | llvm.src/lib/Target/AMDGPU/SIInstructions.td |
 | /llvm/trunk/lib/Target/AMDGPU/SMInstructions.td (diff) | llvm.src/lib/Target/AMDGPU/SMInstructions.td |
 | /llvm/trunk/lib/Target/AMDGPU/SOPInstructions.td (diff) | llvm.src/lib/Target/AMDGPU/SOPInstructions.td |
 | /llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp (diff) | llvm.src/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp |
 | /llvm/trunk/lib/Target/AMDGPU/VOP1Instructions.td (diff) | llvm.src/lib/Target/AMDGPU/VOP1Instructions.td |
 | /llvm/trunk/lib/Target/AMDGPU/VOP2Instructions.td (diff) | llvm.src/lib/Target/AMDGPU/VOP2Instructions.td |
 | /llvm/trunk/lib/Target/AMDGPU/VOPCInstructions.td (diff) | llvm.src/lib/Target/AMDGPU/VOPCInstructions.td |
 | /llvm/trunk/lib/Target/AMDGPU/VOPInstructions.td (diff) | llvm.src/lib/Target/AMDGPU/VOPInstructions.td |
 | /llvm/trunk/test/CodeGen/AMDGPU/memory-legalizer-mesa3d.ll (diff) | llvm.src/test/CodeGen/AMDGPU/memory-legalizer-mesa3d.ll |
Revision
353547
by rnk:
[InstrProf] Implement static profdata registration Summary: The motivating use case is eliminating duplicate profile data registered for the same inline function in two object files. Before this change, users would observe multiple symbol definition errors with VC link, but links with LLD would succeed. Users (Mozilla) have reported that PGO works well with clang-cl and LLD, but when using LLD without this static registration, we would get into a "relocation against a discarded section" situation. I'm not sure what happens in that situation, but I suspect that duplicate, unused profile information was retained. If so, this change will reduce the size of such binaries with LLD. Now, Windows uses static registration and is in line with all the other platforms. Reviewers: davidxl, wmi, inglorion, void, calixte Subscribers: mgorny, krytarowski, eraman, fedor.sergeev, hiraditya, #sanitizers, dmajor, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D57929 |
Change Type | Path in Repository | Path in Workspace |
---|
 | /compiler-rt/trunk/cmake/base-config-ix.cmake (diff) | compiler-rt.src/cmake/base-config-ix.cmake |
 | /compiler-rt/trunk/lib/profile/CMakeLists.txt (diff) | compiler-rt.src/lib/profile/CMakeLists.txt |
 | /compiler-rt/trunk/lib/profile/InstrProfData.inc (diff) | compiler-rt.src/lib/profile/InstrProfData.inc |
 | /compiler-rt/trunk/lib/profile/InstrProfilingPlatformLinux.c (diff) | compiler-rt.src/lib/profile/InstrProfilingPlatformLinux.c |
 | /compiler-rt/trunk/lib/profile/InstrProfilingPlatformOther.c (diff) | compiler-rt.src/lib/profile/InstrProfilingPlatformOther.c |
 | /compiler-rt/trunk/lib/profile/InstrProfilingPlatformWindows.c | compiler-rt.src/lib/profile/InstrProfilingPlatformWindows.c |
 | /compiler-rt/trunk/lib/profile/InstrProfilingValue.c (diff) | compiler-rt.src/lib/profile/InstrProfilingValue.c |
 | /compiler-rt/trunk/test/profile/coverage-inline.cpp | compiler-rt.src/test/profile/coverage-inline.cpp |
 | /compiler-rt/trunk/test/profile/lit.cfg (diff) | compiler-rt.src/test/profile/lit.cfg |
 | /llvm/trunk/include/llvm/ProfileData/InstrProfData.inc (diff) | llvm.src/include/llvm/ProfileData/InstrProfData.inc |
 | /llvm/trunk/lib/Transforms/Instrumentation/InstrProfiling.cpp (diff) | llvm.src/lib/Transforms/Instrumentation/InstrProfiling.cpp |
 | /llvm/trunk/test/Instrumentation/InstrProfiling/PR23499.ll (diff) | llvm.src/test/Instrumentation/InstrProfiling/PR23499.ll |
 | /llvm/trunk/test/Instrumentation/InstrProfiling/comdat.ll | llvm.src/test/Instrumentation/InstrProfiling/comdat.ll |
 | /llvm/trunk/test/Instrumentation/InstrProfiling/linkage.ll (diff) | llvm.src/test/Instrumentation/InstrProfiling/linkage.ll |
 | /llvm/trunk/test/Instrumentation/InstrProfiling/platform.ll (diff) | llvm.src/test/Instrumentation/InstrProfiling/platform.ll |
Revision
353546
by rksimon:
[TargetLowering] Use ISD::FSHR in expandFixedPointMul Replace OR(SHL,SRL) pattern with ISD::FSHR (legalization expands this later if necessary) - this helps with the scale == 0 'undefined' drop-through case that was discussed on D55720. |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cpp (diff) | llvm.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp |
 | /llvm/trunk/test/CodeGen/X86/umul_fix.ll (diff) | llvm.src/test/CodeGen/X86/umul_fix.ll |
Revision
353544
by jdevlieghere:
[test] Run the verifier for dsymutil module tests Dsymutil has an option "verify" that runs the dwarf verifier on the generated dSYM. This patch enables this for the module tests. |
Change Type | Path in Repository | Path in Workspace |
---|
 | /llvm/trunk/test/tools/dsymutil/X86/module-warnings.test (diff) | llvm.src/test/tools/dsymutil/X86/module-warnings.test |
 | /llvm/trunk/test/tools/dsymutil/X86/modules-dwarf-version.m (diff) | llvm.src/test/tools/dsymutil/X86/modules-dwarf-version.m |
 | /llvm/trunk/test/tools/dsymutil/X86/modules-empty.m (diff) | llvm.src/test/tools/dsymutil/X86/modules-empty.m |
 | /llvm/trunk/test/tools/dsymutil/X86/modules-pruning.cpp (diff) | llvm.src/test/tools/dsymutil/X86/modules-pruning.cpp |