FailedChanges

Summary

  1. [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
  2. [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
  3. [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.)
  4. 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.
  5. [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
  6. [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)
  7. 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
  8. Temporarily disable calls to getgrnam/getgrnam_r in test due to it hitting unrelated issues in EGLIBC 2.19.
  9. [AMDGPU] Split idot4/8 signed and unsigned tests. NFC.
  10. [analyzer] Add a comment that FunctionCodeRegions may also need canonicalization
  11. This reverts commit 1440a848a635849b97f7a5cfa0ecc40d37451f5b. and commit a1853e834c65751f92521f7481b15cf0365e796b. They broke arm and aarch64
  12. 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.
  13. [AMDGPU] Split dot-insts feature Differential Revision: https://reviews.llvm.org/D57972
  14. [AMDGPU] Split dot-insts feature Differential Revision: https://reviews.llvm.org/D57971
  15. [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
  16. gn build: Merge r353566
  17. [libFuzzer] more refactoring; change some of the exit codes (timeout, OOM, interrupt) so that the parent process can distinguish those
  18. [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
  19. [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
  20. [x86] add test for miscompiling setcc transform (PR40657); NFC
  21. 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.
  22. -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
  23. [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
  24. [libFuzzer] refactor the merging code, NFC
  25. 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
  26. [libFuzzer] remove two unused experimental flags
  27. [CodeGen][NFC] Update comments in CGExprConstant.cpp.
  28. [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.
  29. [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 .
  30. Fix typo
  31. [Docs] Use code-block:: text for part of the callbr documentation to attempt to make the bot happy.
  32. [analyzer] Opt-in C Style Cast Checker for OSObject pointers Differential Revision: https://reviews.llvm.org/D57261
  33. [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.
  34. 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
  35. [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
  36. 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
  37. [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
  38. AMDGPU/GlobalISel: Fix broken tests
  39. 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.
  40. [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
  41. 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.
  42. [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
  43. [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
  44. [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
  45. [tsan] Remove SCOPED_TSAN_INTERCEPTOR to try to fix ppc bot
  46. 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
  47. [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
  48. AMDGPU: Remove GCN features and predicates These are no longer necessary since the R600 tablegen files are split out now.
  49. [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
  50. [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.
  51. [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.
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 TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/cmake/Modules/AddCompilerRT.cmake (diff)compiler-rt.src/cmake/Modules/AddCompilerRT.cmake
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/MC/MCSectionCOFF.h (diff)llvm.src/include/llvm/MC/MCSectionCOFF.h
The file was modified/llvm/trunk/include/llvm/MC/MCSectionELF.h (diff)llvm.src/include/llvm/MC/MCSectionELF.h
The file was modified/llvm/trunk/include/llvm/MC/MCSectionWasm.h (diff)llvm.src/include/llvm/MC/MCSectionWasm.h
The file was modified/llvm/trunk/lib/MC/MCSectionCOFF.cpp (diff)llvm.src/lib/MC/MCSectionCOFF.cpp
The file was modified/llvm/trunk/lib/MC/MCSectionELF.cpp (diff)llvm.src/lib/MC/MCSectionELF.cpp
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineCasts.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineCasts.cpp
The file was added/llvm/trunk/test/Transforms/InstCombine/cast_phi.llllvm.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 TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was removed/llvm/trunk/test/CodeGen/AMDGPU/idot4.llllvm.src/test/CodeGen/AMDGPU/idot4.ll
The file was added/llvm/trunk/test/CodeGen/AMDGPU/idot4s.llllvm.src/test/CodeGen/AMDGPU/idot4s.ll
The file was added/llvm/trunk/test/CodeGen/AMDGPU/idot4u.llllvm.src/test/CodeGen/AMDGPU/idot4u.ll
The file was removed/llvm/trunk/test/CodeGen/AMDGPU/idot8.llllvm.src/test/CodeGen/AMDGPU/idot8.ll
The file was added/llvm/trunk/test/CodeGen/AMDGPU/idot8s.llllvm.src/test/CodeGen/AMDGPU/idot8s.ll
The file was added/llvm/trunk/test/CodeGen/AMDGPU/idot8u.llllvm.src/test/CodeGen/AMDGPU/idot8u.ll
Revision 353592 by dergachev:
[analyzer] Add a comment that FunctionCodeRegions may also need canonicalization
Change TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/CMakeLists.txt (diff)clang.src/CMakeLists.txt
The file was added/cfe/trunk/cmake/modules/FindZ3.cmakeclang.src/cmake/modules/FindZ3.cmake
The file was modified/cfe/trunk/include/clang/Config/config.h.cmake (diff)clang.src/include/clang/Config/config.h.cmake
The file was added/cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SMTAPI.hclang.src/include/clang/StaticAnalyzer/Core/PathSensitive/SMTAPI.h
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h (diff)clang.src/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h (diff)clang.src/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp (diff)clang.src/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/CMakeLists.txt (diff)clang.src/lib/StaticAnalyzer/Core/CMakeLists.txt
The file was removed/cfe/trunk/lib/StaticAnalyzer/Core/SMTConstraintManager.cppclang.src/lib/StaticAnalyzer/Core/SMTConstraintManager.cpp
The file was added/cfe/trunk/lib/StaticAnalyzer/Core/Z3ConstraintManager.cppclang.src/lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp
The file was modified/cfe/trunk/test/CMakeLists.txt (diff)clang.src/test/CMakeLists.txt
The file was modified/cfe/trunk/test/lit.site.cfg.py.in (diff)clang.src/test/lit.site.cfg.py.in
The file was modified/llvm/trunk/CMakeLists.txt (diff)llvm.src/CMakeLists.txt
The file was removed/llvm/trunk/cmake/modules/FindZ3.cmakellvm.src/cmake/modules/FindZ3.cmake
The file was modified/llvm/trunk/cmake/modules/LLVMConfig.cmake.in (diff)llvm.src/cmake/modules/LLVMConfig.cmake.in
The file was modified/llvm/trunk/include/llvm/Config/config.h.cmake (diff)llvm.src/include/llvm/Config/config.h.cmake
The file was removed/llvm/trunk/include/llvm/Support/SMTAPI.hllvm.src/include/llvm/Support/SMTAPI.h
The file was modified/llvm/trunk/lib/Support/CMakeLists.txt (diff)llvm.src/lib/Support/CMakeLists.txt
The file was removed/llvm/trunk/lib/Support/Z3Solver.cppllvm.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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/TargetOpcodes.def (diff)llvm.src/include/llvm/Support/TargetOpcodes.def
The file was modified/llvm/trunk/include/llvm/Target/GenericOpcodes.td (diff)llvm.src/include/llvm/Target/GenericOpcodes.td
The file was modified/llvm/trunk/include/llvm/Target/GlobalISel/SelectionDAGCompat.td (diff)llvm.src/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsAMDGPU.def (diff)clang.src/include/clang/Basic/BuiltinsAMDGPU.def
The file was modified/cfe/trunk/lib/Basic/Targets/AMDGPU.cpp (diff)clang.src/lib/Basic/Targets/AMDGPU.cpp
The file was modified/cfe/trunk/test/CodeGenOpenCL/amdgpu-features.cl (diff)clang.src/test/CodeGenOpenCL/amdgpu-features.cl
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPU.td (diff)llvm.src/lib/Target/AMDGPU/AMDGPU.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.h (diff)llvm.src/lib/Target/AMDGPU/AMDGPUSubtarget.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp (diff)llvm.src/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/TableGen/GlobalISelEmitterSkippedPatterns.tdllvm.src/test/TableGen/GlobalISelEmitterSkippedPatterns.td
The file was modified/llvm/trunk/utils/TableGen/GlobalISelEmitter.cpp (diff)llvm.src/utils/TableGen/GlobalISelEmitter.cpp
Revision 353585 by nico:
gn build: Merge r353566
Change TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerDriver.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerDriver.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerLoop.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerLoop.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerMerge.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerMerge.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerMerge.h (diff)compiler-rt.src/lib/fuzzer/FuzzerMerge.h
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerOptions.h (diff)compiler-rt.src/lib/fuzzer/FuzzerOptions.h
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp (diff)clang.src/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/CSEInfo.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/CSEInfo.cpp
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp
The file was added/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-ext-csedebug-output.mirllvm.src/test/CodeGen/AArch64/GlobalISel/legalize-ext-csedebug-output.mir
Revision 353578 by Adrian Prantl:
-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 TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (diff)clang.src/lib/CodeGen/CGDebugInfo.cpp
The file was added/cfe/trunk/test/Modules/DebugInfo-fmodule-name.cclang.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 TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cpp (diff)clang.src/lib/CodeGen/CGBuiltin.cpp
The file was added/cfe/trunk/test/CodeGenObjC/builtin-constant-p.mclang.src/test/CodeGenObjC/builtin-constant-p.m
Revision 353576 by kcc:
[libFuzzer] refactor the merging code, NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerDriver.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerDriver.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerMerge.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerMerge.cpp
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/CSEInfo.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/CSEInfo.cpp
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp
The file was removed/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-ext-csedebug-output.mirllvm.src/test/CodeGen/AArch64/GlobalISel/legalize-ext-csedebug-output.mir
Revision 353573 by kcc:
[libFuzzer] remove two unused experimental flags
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerDriver.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerDriver.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerFlags.def (diff)compiler-rt.src/lib/fuzzer/FuzzerFlags.def
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerMerge.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerMerge.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerMerge.h (diff)compiler-rt.src/lib/fuzzer/FuzzerMerge.h
The file was modified/compiler-rt/trunk/lib/fuzzer/tests/FuzzerUnittest.cpp (diff)compiler-rt.src/lib/fuzzer/tests/FuzzerUnittest.cpp
The file was modified/compiler-rt/trunk/test/fuzzer/merge-control-file.test (diff)compiler-rt.src/test/fuzzer/merge-control-file.test
The file was removed/compiler-rt/trunk/test/fuzzer/merge-summary.testcompiler-rt.src/test/fuzzer/merge-summary.test
Revision 353571 by efriedma:
[CodeGen][NFC] Update comments in CGExprConstant.cpp.
Change TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerDriver.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerDriver.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerFlags.def (diff)compiler-rt.src/lib/fuzzer/FuzzerFlags.def
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerInternal.h (diff)compiler-rt.src/lib/fuzzer/FuzzerInternal.h
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerLoop.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerLoop.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerMerge.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerMerge.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerMerge.h (diff)compiler-rt.src/lib/fuzzer/FuzzerMerge.h
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ExprConstant.cpp (diff)clang.src/lib/AST/ExprConstant.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGExprConstant.cpp (diff)clang.src/lib/CodeGen/CGExprConstant.cpp
The file was modified/cfe/trunk/lib/Sema/SemaInit.cpp (diff)clang.src/lib/Sema/SemaInit.cpp
The file was modified/cfe/trunk/test/AST/ast-dump-wchar.cpp (diff)clang.src/test/AST/ast-dump-wchar.cpp
The file was modified/cfe/trunk/test/CodeGenObjC/encode-test.m (diff)clang.src/test/CodeGenObjC/encode-test.m
The file was modified/cfe/trunk/test/SemaCXX/constant-expression-cxx11.cpp (diff)clang.src/test/SemaCXX/constant-expression-cxx11.cpp
Revision 353568 by Adrian Prantl:
Fix typo
Change TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Checkers/Checkers.td (diff)clang.src/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/CMakeLists.txt (diff)clang.src/lib/StaticAnalyzer/Checkers/CMakeLists.txt
The file was added/cfe/trunk/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cppclang.src/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp
The file was added/cfe/trunk/test/Analysis/osobjectcstylecastchecker_test.cppclang.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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrFPStack.td (diff)llvm.src/lib/Target/X86/X86InstrFPStack.td
The file was modified/llvm/trunk/test/CodeGen/MIR/X86/memory-operands.mir (diff)llvm.src/test/CodeGen/MIR/X86/memory-operands.mir
The file was modified/llvm/trunk/test/CodeGen/X86/pr34080.ll (diff)llvm.src/test/CodeGen/X86/pr34080.ll
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/LangRef.rst (diff)llvm.src/docs/LangRef.rst
The file was modified/llvm/trunk/include/llvm-c/Core.h (diff)llvm.src/include/llvm-c/Core.h
The file was modified/llvm/trunk/include/llvm/Analysis/SparsePropagation.h (diff)llvm.src/include/llvm/Analysis/SparsePropagation.h
The file was modified/llvm/trunk/include/llvm/Bitcode/LLVMBitCodes.h (diff)llvm.src/include/llvm/Bitcode/LLVMBitCodes.h
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/IRTranslator.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/IRTranslator.h
The file was modified/llvm/trunk/include/llvm/CodeGen/ISDOpcodes.h (diff)llvm.src/include/llvm/CodeGen/ISDOpcodes.h
The file was modified/llvm/trunk/include/llvm/CodeGen/MachineInstr.h (diff)llvm.src/include/llvm/CodeGen/MachineInstr.h
The file was modified/llvm/trunk/include/llvm/CodeGen/SelectionDAGISel.h (diff)llvm.src/include/llvm/CodeGen/SelectionDAGISel.h
The file was modified/llvm/trunk/include/llvm/IR/CallSite.h (diff)llvm.src/include/llvm/IR/CallSite.h
The file was modified/llvm/trunk/include/llvm/IR/IRBuilder.h (diff)llvm.src/include/llvm/IR/IRBuilder.h
The file was modified/llvm/trunk/include/llvm/IR/InstVisitor.h (diff)llvm.src/include/llvm/IR/InstVisitor.h
The file was modified/llvm/trunk/include/llvm/IR/InstrTypes.h (diff)llvm.src/include/llvm/IR/InstrTypes.h
The file was modified/llvm/trunk/include/llvm/IR/Instruction.def (diff)llvm.src/include/llvm/IR/Instruction.def
The file was modified/llvm/trunk/include/llvm/IR/Instruction.h (diff)llvm.src/include/llvm/IR/Instruction.h
The file was modified/llvm/trunk/include/llvm/IR/Instructions.h (diff)llvm.src/include/llvm/IR/Instructions.h
The file was modified/llvm/trunk/include/llvm/Support/TargetOpcodes.def (diff)llvm.src/include/llvm/Support/TargetOpcodes.def
The file was modified/llvm/trunk/include/llvm/Target/Target.td (diff)llvm.src/include/llvm/Target/Target.td
The file was modified/llvm/trunk/lib/Analysis/ValueTracking.cpp (diff)llvm.src/lib/Analysis/ValueTracking.cpp
The file was modified/llvm/trunk/lib/AsmParser/LLLexer.cpp (diff)llvm.src/lib/AsmParser/LLLexer.cpp
The file was modified/llvm/trunk/lib/AsmParser/LLParser.cpp (diff)llvm.src/lib/AsmParser/LLParser.cpp
The file was modified/llvm/trunk/lib/AsmParser/LLParser.h (diff)llvm.src/lib/AsmParser/LLParser.h
The file was modified/llvm/trunk/lib/AsmParser/LLToken.h (diff)llvm.src/lib/AsmParser/LLToken.h
The file was modified/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp (diff)llvm.src/lib/Bitcode/Reader/BitcodeReader.cpp
The file was modified/llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp (diff)llvm.src/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was modified/llvm/trunk/lib/Bitcode/Writer/ValueEnumerator.cpp (diff)llvm.src/lib/Bitcode/Writer/ValueEnumerator.cpp
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (diff)llvm.src/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp (diff)llvm.src/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
The file was modified/llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp (diff)llvm.src/lib/CodeGen/CodeGenPrepare.cpp
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modified/llvm/trunk/lib/CodeGen/IndirectBrExpandPass.cpp (diff)llvm.src/lib/CodeGen/IndirectBrExpandPass.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/InstrEmitter.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modified/llvm/trunk/lib/CodeGen/TargetLoweringBase.cpp (diff)llvm.src/lib/CodeGen/TargetLoweringBase.cpp
The file was modified/llvm/trunk/lib/IR/AsmWriter.cpp (diff)llvm.src/lib/IR/AsmWriter.cpp
The file was modified/llvm/trunk/lib/IR/Instruction.cpp (diff)llvm.src/lib/IR/Instruction.cpp
The file was modified/llvm/trunk/lib/IR/Instructions.cpp (diff)llvm.src/lib/IR/Instructions.cpp
The file was modified/llvm/trunk/lib/IR/Value.cpp (diff)llvm.src/lib/IR/Value.cpp
The file was modified/llvm/trunk/lib/IR/Verifier.cpp (diff)llvm.src/lib/IR/Verifier.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp (diff)llvm.src/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp (diff)llvm.src/lib/Target/ARM/ARMISelDAGToDAG.cpp
The file was modified/llvm/trunk/lib/Target/AVR/AVRInstrInfo.cpp (diff)llvm.src/lib/Target/AVR/AVRInstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonISelLowering.cpp (diff)llvm.src/lib/Target/Hexagon/HexagonISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonMachineScheduler.cpp (diff)llvm.src/lib/Target/Hexagon/HexagonMachineScheduler.cpp
The file was modified/llvm/trunk/lib/Target/MSP430/MSP430InstrInfo.cpp (diff)llvm.src/lib/Target/MSP430/MSP430InstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/Mips/MipsInstrInfo.cpp (diff)llvm.src/lib/Target/Mips/MipsInstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCRegisterInfo.cpp (diff)llvm.src/lib/Target/PowerPC/PPCRegisterInfo.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVInstrInfo.cpp (diff)llvm.src/lib/Target/RISCV/RISCVInstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/Sparc/SparcISelDAGToDAG.cpp (diff)llvm.src/lib/Target/Sparc/SparcISelDAGToDAG.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp (diff)llvm.src/lib/Target/X86/X86AsmPrinter.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86FloatingPoint.cpp (diff)llvm.src/lib/Target/X86/X86FloatingPoint.cpp
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineInternal.h (diff)llvm.src/lib/Transforms/InstCombine/InstCombineInternal.h
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modified/llvm/trunk/lib/Transforms/Scalar/GVN.cpp (diff)llvm.src/lib/Transforms/Scalar/GVN.cpp
The file was modified/llvm/trunk/lib/Transforms/Scalar/JumpThreading.cpp (diff)llvm.src/lib/Transforms/Scalar/JumpThreading.cpp
The file was modified/llvm/trunk/lib/Transforms/Scalar/SCCP.cpp (diff)llvm.src/lib/Transforms/Scalar/SCCP.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/BasicBlockUtils.cpp (diff)llvm.src/lib/Transforms/Utils/BasicBlockUtils.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/BreakCriticalEdges.cpp (diff)llvm.src/lib/Transforms/Utils/BreakCriticalEdges.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp (diff)llvm.src/lib/Transforms/Utils/InlineFunction.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/Local.cpp (diff)llvm.src/lib/Transforms/Utils/Local.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/LoopSimplify.cpp (diff)llvm.src/lib/Transforms/Utils/LoopSimplify.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/LoopUtils.cpp (diff)llvm.src/lib/Transforms/Utils/LoopUtils.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp (diff)llvm.src/lib/Transforms/Utils/SimplifyCFG.cpp
The file was added/llvm/trunk/test/Bitcode/callbr.llllvm.src/test/Bitcode/callbr.ll
The file was added/llvm/trunk/test/Bitcode/callbr.ll.bcllvm.src/test/Bitcode/callbr.ll.bc
The file was added/llvm/trunk/test/CodeGen/X86/callbr-asm-blockplacement.llllvm.src/test/CodeGen/X86/callbr-asm-blockplacement.ll
The file was added/llvm/trunk/test/CodeGen/X86/callbr-asm-branch-folding.llllvm.src/test/CodeGen/X86/callbr-asm-branch-folding.ll
The file was added/llvm/trunk/test/CodeGen/X86/callbr-asm-destinations.llllvm.src/test/CodeGen/X86/callbr-asm-destinations.ll
The file was added/llvm/trunk/test/CodeGen/X86/callbr-asm-errors.llllvm.src/test/CodeGen/X86/callbr-asm-errors.ll
The file was added/llvm/trunk/test/CodeGen/X86/callbr-asm-outputs.llllvm.src/test/CodeGen/X86/callbr-asm-outputs.ll
The file was added/llvm/trunk/test/CodeGen/X86/callbr-asm.llllvm.src/test/CodeGen/X86/callbr-asm.ll
The file was added/llvm/trunk/test/Transforms/GVN/callbr-loadpre-critedge.llllvm.src/test/Transforms/GVN/callbr-loadpre-critedge.ll
The file was added/llvm/trunk/test/Transforms/GVN/callbr-scalarpre-critedge.llllvm.src/test/Transforms/GVN/callbr-scalarpre-critedge.ll
The file was added/llvm/trunk/test/Transforms/JumpThreading/callbr-edge-split.llllvm.src/test/Transforms/JumpThreading/callbr-edge-split.ll
The file was modified/llvm/trunk/test/Transforms/MergeFunc/call-and-invoke-with-ranges.ll (diff)llvm.src/test/Transforms/MergeFunc/call-and-invoke-with-ranges.ll
The file was modified/llvm/trunk/test/Transforms/MergeFunc/inline-asm.ll (diff)llvm.src/test/Transforms/MergeFunc/inline-asm.ll
The file was modified/llvm/trunk/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp (diff)llvm.src/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
The file was modified/llvm/trunk/utils/vim/syntax/llvm.vim (diff)llvm.src/utils/vim/syntax/llvm.vim
Revision 353562 by Vedant Kumar:
[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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Utils/CodeExtractor.cpp (diff)llvm.src/lib/Transforms/Utils/CodeExtractor.cpp
The file was modified/llvm/trunk/unittests/Transforms/Utils/CodeExtractorTest.cpp (diff)llvm.src/unittests/Transforms/Utils/CodeExtractorTest.cpp
Revision 353561 by Vitaly Buka:
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 TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fabs.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fabs.mir
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPU.td (diff)llvm.src/lib/Target/AMDGPU/AMDGPU.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.h (diff)llvm.src/lib/Target/AMDGPU/AMDGPUSubtarget.h
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was added/llvm/trunk/test/CodeGen/AArch64/pow.75.llllvm.src/test/CodeGen/AArch64/pow.75.ll
The file was added/llvm/trunk/test/CodeGen/ARM/pow.75.llllvm.src/test/CodeGen/ARM/pow.75.ll
The file was added/llvm/trunk/test/CodeGen/PowerPC/pow.75.llllvm.src/test/CodeGen/PowerPC/pow.75.ll
The file was added/llvm/trunk/test/CodeGen/X86/pow.75.llllvm.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 TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Headers/avx512bwintrin.h (diff)clang.src/lib/Headers/avx512bwintrin.h
The file was modified/cfe/trunk/lib/Headers/avx512fintrin.h (diff)clang.src/lib/Headers/avx512fintrin.h
The file was modified/cfe/trunk/lib/Headers/avx512vlbwintrin.h (diff)clang.src/lib/Headers/avx512vlbwintrin.h
The file was modified/cfe/trunk/lib/Headers/avx512vlintrin.h (diff)clang.src/lib/Headers/avx512vlintrin.h
The file was modified/cfe/trunk/lib/Headers/avxintrin.h (diff)clang.src/lib/Headers/avxintrin.h
The file was modified/cfe/trunk/lib/Headers/emmintrin.h (diff)clang.src/lib/Headers/emmintrin.h
The file was modified/cfe/trunk/lib/Headers/mmintrin.h (diff)clang.src/lib/Headers/mmintrin.h
The file was modified/cfe/trunk/lib/Headers/xmmintrin.h (diff)clang.src/lib/Headers/xmmintrin.h
The file was added/cfe/trunk/test/CodeGen/x86-vec-struct-packing.cclang.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 TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp (diff)clang-tools-extra.src/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
The file was modified/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
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/CSEInfo.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/CSEInfo.cpp
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp
The file was added/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-ext-csedebug-output.mirllvm.src/test/CodeGen/AArch64/GlobalISel/legalize-ext-csedebug-output.mir
Revision 353552 by Vitaly Buka:
[tsan] Remove SCOPED_TSAN_INTERCEPTOR to try to fix ppc bot
Change TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/cmake/modules/HandleLLVMOptions.cmake (diff)llvm.src/cmake/modules/HandleLLVMOptions.cmake
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPU.td (diff)llvm.src/lib/Target/AMDGPU/AMDGPU.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInstructions.td (diff)llvm.src/lib/Target/AMDGPU/AMDGPUInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/DSInstructions.td (diff)llvm.src/lib/Target/AMDGPU/DSInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/GCNProcessors.td (diff)llvm.src/lib/Target/AMDGPU/GCNProcessors.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/MIMGInstructions.td (diff)llvm.src/lib/Target/AMDGPU/MIMGInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIInstrFormats.td (diff)llvm.src/lib/Target/AMDGPU/SIInstrFormats.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIInstructions.td (diff)llvm.src/lib/Target/AMDGPU/SIInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/SMInstructions.td (diff)llvm.src/lib/Target/AMDGPU/SMInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/SOPInstructions.td (diff)llvm.src/lib/Target/AMDGPU/SOPInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOP1Instructions.td (diff)llvm.src/lib/Target/AMDGPU/VOP1Instructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOP2Instructions.td (diff)llvm.src/lib/Target/AMDGPU/VOP2Instructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOPCInstructions.td (diff)llvm.src/lib/Target/AMDGPU/VOPCInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOPInstructions.td (diff)llvm.src/lib/Target/AMDGPU/VOPInstructions.td
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/cmake/base-config-ix.cmake (diff)compiler-rt.src/cmake/base-config-ix.cmake
The file was modified/compiler-rt/trunk/lib/profile/CMakeLists.txt (diff)compiler-rt.src/lib/profile/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/profile/InstrProfData.inc (diff)compiler-rt.src/lib/profile/InstrProfData.inc
The file was modified/compiler-rt/trunk/lib/profile/InstrProfilingPlatformLinux.c (diff)compiler-rt.src/lib/profile/InstrProfilingPlatformLinux.c
The file was modified/compiler-rt/trunk/lib/profile/InstrProfilingPlatformOther.c (diff)compiler-rt.src/lib/profile/InstrProfilingPlatformOther.c
The file was added/compiler-rt/trunk/lib/profile/InstrProfilingPlatformWindows.ccompiler-rt.src/lib/profile/InstrProfilingPlatformWindows.c
The file was modified/compiler-rt/trunk/lib/profile/InstrProfilingValue.c (diff)compiler-rt.src/lib/profile/InstrProfilingValue.c
The file was added/compiler-rt/trunk/test/profile/coverage-inline.cppcompiler-rt.src/test/profile/coverage-inline.cpp
The file was modified/compiler-rt/trunk/test/profile/lit.cfg (diff)compiler-rt.src/test/profile/lit.cfg
The file was modified/llvm/trunk/include/llvm/ProfileData/InstrProfData.inc (diff)llvm.src/include/llvm/ProfileData/InstrProfData.inc
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/InstrProfiling.cpp (diff)llvm.src/lib/Transforms/Instrumentation/InstrProfiling.cpp
The file was modified/llvm/trunk/test/Instrumentation/InstrProfiling/PR23499.ll (diff)llvm.src/test/Instrumentation/InstrProfiling/PR23499.ll
The file was added/llvm/trunk/test/Instrumentation/InstrProfiling/comdat.llllvm.src/test/Instrumentation/InstrProfiling/comdat.ll
The file was modified/llvm/trunk/test/Instrumentation/InstrProfiling/linkage.ll (diff)llvm.src/test/Instrumentation/InstrProfiling/linkage.ll
The file was modified/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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/umul_fix.ll (diff)llvm.src/test/CodeGen/X86/umul_fix.ll
Revision 353544 by Jonas Devlieghere:
[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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/dsymutil/X86/module-warnings.test (diff)llvm.src/test/tools/dsymutil/X86/module-warnings.test
The file was modified/llvm/trunk/test/tools/dsymutil/X86/modules-dwarf-version.m (diff)llvm.src/test/tools/dsymutil/X86/modules-dwarf-version.m
The file was modified/llvm/trunk/test/tools/dsymutil/X86/modules-empty.m (diff)llvm.src/test/tools/dsymutil/X86/modules-empty.m
The file was modified/llvm/trunk/test/tools/dsymutil/X86/modules-pruning.cpp (diff)llvm.src/test/tools/dsymutil/X86/modules-pruning.cpp