FailedChanges

Summary

  1. [CUDA][HIP] Fix host/device check with -fopenmp CUDA/HIP program may be compiled with -fopenmp. In this case, -fopenmp is only passed to host compilation to take advantages of multi-threads computation. CUDA/HIP and OpenMP both use Sema::DeviceCallGraph to store functions to be analyzed and remove them once they decide the function is sure to be emitted. CUDA/HIP and OpenMP have different functions to determine if a function is sure to be emitted. To check host/device correctly for CUDA/HIP when -fopenmp is enabled, there needs a unified logic to determine whether a function is to be emitted. The logic needs to be aware of both CUDA and OpenMP logic. Differential Revision: https://reviews.llvm.org/D67837
  2. Conservatively add volatility and atomic checks in a few places As background, starting in D66309, I'm working on support unordered atomics analogous to volatile flags on normal LoadSDNode/StoreSDNodes for X86. As part of that, I spent some time going through usages of LoadSDNode and StoreSDNode looking for cases where we might have missed a volatility check or need an atomic check. I couldn't find any cases that clearly miscompile - i.e. no test cases - but a couple of pieces in code loop suspicious though I can't figure out how to exercise them. This patch adds defensive checks and asserts in the places my manual audit found. If anyone has any ideas on how to either a) disprove any of the checks, or b) hit the bug they might be fixing, I welcome suggestions. Differential Revision: https://reviews.llvm.org/D68419
  3. gn build: Merge r374245
  4. [WebAssembly] Fix tests missed in rL374235
  5. [sanitizer_common] Remove OnPrint from Go build. Summary: Go now uses __sanitizer_on_print instead. Reviewers: vitalybuka, dvyukov Reviewed By: vitalybuka Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68621
  6. AMDGPU: Don't fold copies to physregs In a future patch, this will help cleanup m0 handling. The register coalescer handles copies from a register that materializes an immediate, but doesn't handle move immediates itself. The virtual register uses will often be allocated to the same register, so there end up being no real copy.
  7. AMDGPU/GlobalISel: Fix crash on wide constant load with VGPR pointer This was ignoring the register bank of the input pointer, and isUniformMMO seems overly aggressive. This will now conservatively assume a VGPR in cases where the incoming bank hasn't been determined yet (i.e. is from a loop phi).
  8. AMDGPU: Relax register classes used
  9. AMDGPU: Fix typos
  10. GlobalISel: Implement fewerElementsVector for G_BUILD_VECTOR Turn it into a G_CONCAT_VECTORS of G_BUILD_VECTOR.
  11. gn build: (manually) merge r374219
  12. [libc++][test] Miscellaneous MSVC cleanups * Silence unused-local-typedef warnings: `map.cons/assign_initializer_list.pass.cpp` (and the `set.cons` variant) uses a local typedef only within `LIBCPP_ASSERT`s, so clang diagnoses it as unused when testing non-libc++. * Add missing include: `c.math/abs.pass.cpp` uses `std::numeric_limits` but failed to `#include <limits>`. * Don't test non-type: A "recent" change to `meta.trans.other/underlying_type.pass.cpp` unconditionally tests the type `F` which is conditionally defined. * Use `hash<long long>` instead of `hash<short>` with `int` in `unordered_meow` deduction guide tests to avoid truncation warnings. * Convert `3.14` explicitly in `midpoint.float.pass` since MSVC incorrectly diagnoses `float meow = 3.14;` as truncating. Differential Revision: https://reviews.llvm.org/D68681
  13. [GISel] Refactor and split PatternMatchTest. NFC Split the ConstantFold part into a separate file and make it use the fixture GISelMITest.
  14. [InstCombine] Fix PR43617 Check for `nullptr` before inspecting composite function.
  15. [AMDGPU] Fixed dpp combine of VOP1 If original instruction did not have source modifiers they were not added to the new DPP instruction as well, even if needed. Differential Revision: https://reviews.llvm.org/D68729
  16. [IRBuilder] Update IRBuilder::CreateFNeg(...) to return a UnaryOperator Also update Clang to call Builder.CreateFNeg(...) for UnaryMinus. Differential Revision: https://reviews.llvm.org/D61675
  17. [WebAssembly] Make returns variadic Summary: This is necessary and sufficient to get simple cases of multiple return working with multivalue enabled. More complex cases will require block and loop signatures to be generalized to potentially be type indices as well. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68684
  18. [SampleFDO] Add indexing for function profiles so they can be loaded on demand in ExtBinary format Currently for Text, Binary and ExtBinary format profiles, when we compile a module with samplefdo, even if there is no function showing up in the profile, we have to load all the function profiles from the profile input. That is a waste of compile time. CompactBinary format profile has already had the support of loading function profiles on demand. In this patch, we add the support to load profile on demand for ExtBinary format. It will work no matter the sections in ExtBinary format profile are compressed or not. Experiment shows it reduces the time to compile a server benchmark by 30%. When profile remapping and loading function profiles on demand are both used, extra work needs to be done so that the loading on demand process will take the name remapping into consideration. It will be addressed in a follow-up patch. Differential Revision: https://reviews.llvm.org/D68601
  19. llvm-dwarfdump: Support multiple debug_loclists contributions Also fixing the incorrect "offset" field being computed/printed for each location list.
  20. [Docs] Adds section for Additional Topics on Reference page Adds a new section for Additional Topics on the Reference documentation page. Also moves Support Library topic to User Guides page.
  21. [libFuzzer] Fix Alarm callback in fuchsia. This patch adds an #if macro to skip the InFuzzingThread() comparison for fuchsia, similar to what it is done for Windows and NetBSD. In fuchsia, the alarm callback runs in a separate thread[0], making it fail the comparison InFuzzingThread(), breaking the -timeout flag. [0]: https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp#L323 Author: charco (aka Marco Vanotti) Differential Revision: https://reviews.llvm.org/D68166
  22. [OPENMP50]Fix scoring of contexts with and without user provided scores. The context selector with user provided score must have higher score than the context selector without user provided score.
  23. [sanitizer, NFC] Fix grammar in comment
  24. [System Model] [TTI] Define AMDGPUTTIImpl::getST and AMDGPUTTIImpl::getTLI To fix "infinite recursion" warning.
  25. [System Model] [TTI] Fix virtual destructor warning
  26. [sanitizer] Disable signal_trap_handler on s390
  27. [Clang][OpenMP Offload] Add new tool for wrapping offload device binaries This patch removes the remaining part of the OpenMP offload linker scripts which was used for inserting device binaries into the output linked binary. Device binaries are now inserted into the host binary with a help of the wrapper bit-code file which contains device binaries as data. Wrapper bit-code file is dynamically created by the clang driver with a help of new tool clang-offload-wrapper which takes device binaries as input and produces bit-code file with required contents. Wrapper bit-code is then compiled to an object and resulting object is appended to the host linking by the clang driver. This is the second part of the patch for eliminating OpenMP linker script (please see https://reviews.llvm.org/D64943). Differential Revision: https://reviews.llvm.org/D68166
  28. [Docs] Adds Documentation links to sidebar Adds links to Getting Started/Tutorials, User Guides, and Reference documentation pages to sidebar. Also adds a new section for LLVM IR on the Reference documentation page.
  29. [sanitizer] Make signal_name a C test
  30. [sanitizer] Use raise() in test and cover more signals
  31. [ConstProp] add tests for extractelement with undef index; NFC
  32. [AMDGPU] Use math constants defined in MathExtras (NFC) Use the the new math constants in `MathExtras.h`. Differential revision: https://reviews.llvm.org/D68285
  33. [Support] Add mathematical constants Add own version of the mathematical constants from the upcoming C++20 `std::numbers`. Differential revision: https://reviews.llvm.org/D68257
  34. [System Model] [TTI] Update cache and prefetch TTI interfaces Re-apply 9fdfb045ae8b/r365676 with fixes for PPC and Hexagon. This involved moving defaults from TargetTransformInfoImplBase to MCSubtargetInfo. Rework the TTI cache and software prefetching APIs to prepare for the introduction of a general system model. Changes include: - Marking existing interfaces const and/or override as appropriate - Adding comments - Adding BasicTTIImpl interfaces that delegate to a subtarget implementation - Moving the default TargetTransformInfoImplBase implementation to a default MCSubtarget implementation Only a handful of targets use these interfaces currently: AArch64, Hexagon, PPC and SystemZ. AArch64 already has a custom subtarget implementation, so its custom TTI implementation is migrated to use the new facilities in BasicTTIImpl to invoke its custom subtarget implementation. The custom TTI implementations continue to exist for the other targets with this change. They are not moved over to subtarget-based implementations. The end goal is to have the default subtarget implementation defer to the system model defined by the target. With this change, the default MCSubtargetInfo implementation essentially returns the defaults TargetTransformInfoImplBase used to return. Existing users of TTI defaults will hit the defaults now in MCSubtargetInfo. Targets that define their own custom TTI implementations won't use the BasicTTIImpl implementations that route to the subtarget. Once system models are in place for the targets that use these interfaces, their custom TTI implementations can be removed. Differential Revision: https://reviews.llvm.org/D63614
  35. [ObjC generics] Fix not inheriting type bounds in categories/extensions. When a category/extension doesn't repeat a type bound, corresponding type parameter is substituted with `id` when used as a type argument. As a result, in the added test case it was causing errors like > type argument 'T' (aka 'id') does not satisfy the bound ('id<NSCopying>') of type parameter 'T' We are already checking that type parameters should be consistent everywhere (see `checkTypeParamListConsistency`) and update `ObjCTypeParamDecl` to have correct underlying type. And when we use the type parameter as a method return type or a method parameter type, it is substituted to the bounded type. But when we use the type parameter as a type argument, we check `ObjCTypeParamType` that ignores the updated underlying type and remains `id`. Fix by desugaring `ObjCTypeParamType` to the underlying type, the same way we are doing with `TypedefType`. rdar://problem/54329242 Reviewers: erik.pilkington, ahatanak Reviewed By: erik.pilkington Subscribers: jkorous, dexonsmith, ributzka, cfe-commits Differential Revision: https://reviews.llvm.org/D66696
  36. [mangle] Fix mangling where an extra mangle context is required. Summary: - [Itanium C++ ABI][1], for certain contexts like default parameter and etc., mangling numbering will be local to the particular argument in which it appears. - However, for these cases, the mangle numbering context is allocated per expression evaluation stack entry. That causes, for example, two lambdas defined/used understand the same default parameter are numbered as the same value and, in turn, one of them is not generated at all. - In this patch, an extra mangle numbering context map is maintained in the AST context to map taht extra declaration context to its numbering context. So that, 2 different lambdas defined/used in the same default parameter are numbered differently. [1]: https://itanium-cxx-abi.github.io/cxx-abi/abi.html Reviewers: rsmith, eli.friedman Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D68715
  37. [HIP] Fix -save-temps Currently clang does not save some of the intermediate file generated during device compilation for HIP when -save-temps is specified. This patch fixes that. Differential Revision: https://reviews.llvm.org/D68665
  38. DebugInfo: Shot in the dark attempt to fix ubsan error from r374122 (specifying an underlying type for the enum might also be suitable - but this seems better/as good, since there's a clear expectation this can contain values other than the actual enumerators of this enum)
  39. [lit] Refactor ProgressDisplay Move progress display to separate file. Simplify some code paths. Decouple from other components via progress callback. Remove unused `_Display` class. Reviewed By: serge-sans-paille Differential Revision: https://reviews.llvm.org/D68525
  40. [ARM] Fix arm_neon.h with -flax-vector-conversions=none Really, we were already 99% of the way there; just needed a couple minor fixes that affected 64-bit-only builtins. Based on D61717. Note that the change to builtin_str changes the type of a few __builtin_neon_* intrinsics that had the "wrong" type. Fixes https://bugs.llvm.org/show_bug.cgi?id=43341 Differential Revision: https://reviews.llvm.org/D68683
  41. [InstCombine] add another test for gep inbounds; NFC
  42. [WebAssembly] Add builtin and intrinsic for v8x16.swizzle Summary: This clang builtin and corresponding LLVM intrinsic are necessary to expose the exact semantics of the underlying WebAssembly instruction to users. LLVM produces a poison value if the dynamic swizzle indices are greater than the vector size, but the WebAssembly instruction sets the corresponding output lane to zero. Users who depend on this behavior can safely use this builtin. Depends on D68527. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D68531
  43. [WebAssembly] v8x16.swizzle and rewrite BUILD_VECTOR lowering Summary: Adds the new v8x16.swizzle SIMD instruction as specified at https://github.com/WebAssembly/simd/blob/master/proposals/simd/SIMD.md#swizzling-using-variable-indices. In addition to adding swizzles as a candidate lowering in LowerBUILD_VECTOR, also rewrites and simplifies the lowering to minimize the number of replace_lanes necessary rather than trying to minimize code size. This leads to more uses of v128.const instead of splats, which is expected to increase performance. The new code will be easier to tune once V8 implements all the vector construction operations, and it will also be easier to add new candidate instructions in the future if necessary. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68527
  44. [FPEnv][NFC] Change test to conform to strictfp attribute rules. In particular, the function definition is not marked strictfp despite containing a function marked strictfp. Also, if any function call is marked strictfp then all function calls in that function must be marked. This change to move the one strictfp call to a new properly marked function meets all the new rules. Tested with a stricter version of D68233. Reviewed by: spatel Approved by: spatel Differential Revision: https://reviews.llvm.org/D68713
  45. [SLP] respect target register width for GEP vectorization (PR43578) We failed to account for the target register width (max vector factor) when vectorizing starting from GEPs. This causes vectorization to proceed to obviously illegal widths as in: https://bugs.llvm.org/show_bug.cgi?id=43578 For x86, this also means that SLP can produce rogue AVX or AVX512 code even when the user specifies a narrower vector width. The AArch64 test in ext-trunc.ll appears to be better using the narrower width. I'm not exactly sure what getelementptr.ll is trying to do, but it's testing with "-slp-threshold=-18", so I'm not worried about those diffs. The x86 test is an over-reduction from SPEC h264; this patch appears to restore the perf loss caused by SLP when using -march=haswell. Differential Revision: https://reviews.llvm.org/D68667
  46. [AArch64] Ensure no tagged memory is left in the unallocated portion of the stack This patch makes sure that if we tag some memory, we untag that memory before the function returns/throws via any exit, reachable from the tag operation. For that we place the untag operation either at: a) the lifetime end call for the alloca, if that call post-dominates the lifetime start call (where the tag operation is placed), or it (the lifetime end call) dominates all reachable exits, otherwise b) at the reachable exits Differential Revision: https://reviews.llvm.org/D68469
  47. [NFC] Remove files got accidentally upload in llvm-svn 374179
  48. [AIX][XCOFF][NFC] Change the SectionLen field name of CSect Auxiliary entry to SectionOrLength. Summary: According the the XCOFF document, If Then XTY_SD x_scnlen contains the csect length. XTY_LD x_scnlen contains the symbol table index of the containing csect. XTY_CM x_scnlen contains the csect length. XTY_ER x_scnlen contains 0. Change the SectionLen member name to SectionOrLength is more reasonable. Authored By: DiggerLin Reviewed By: hubert.reinterpretcast Differential Revision: https://reviews.llvm.org/D68650
  49. Re-land "[dsymutil] Fix handling of common symbols in multiple object files." The original patch got reverted because it hit a long-standing legacy issue on Windows that prevents files from being named `com`. Thanks Kristina & Jeremy for pointing this out.
  50. [MemorySSA] Make the use of moveAllAfterMergeBlocks consistent. Summary: The rule for the moveAllAfterMergeBlocks API si for all instructions from `From` to have been moved to `To`, while keeping the CFG edges (and block terminators) unchanged. Update all the callsites for moveAllAfterMergeBlocks to follow this. Pending follow-up: since the same behavior is needed everytime, merge all callsites into one. The common denominator may be the call to `MergeBlockIntoPredecessor`. Resolves PR43569. Reviewers: george.burgess.iv Subscribers: Prazek, sanjoy.google, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68659
  51. [NFC] Reverting changes from test commit. llvm commit access test succeeded.
  52. [NFC] Test commit. Testing llvm commit access only.
  53. [scudo][standalone] Get statistics in a char buffer Summary: Following up on D68471, this CL introduces some `getStats` APIs to gather statistics in char buffers (`ScopedString` really) instead of printing them out right away. Ultimately `printStats` will just output the buffer, but that allows us to potentially do some work on the intermediate buffer, and can be used for a `mallocz` type of functionality. This allows us to pretty much get rid of all the `Printf` calls around, but I am keeping the function in for debugging purposes. This changes the existing tests to use the new APIs when required. I will add new tests as suggested in D68471 in another CL. Reviewers: morehouse, hctim, vitalybuka, eugenis, cferris Reviewed By: morehouse Subscribers: delcypher, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D68653
  54. [clang-format] Update noexcept reference qualifiers detection Summary: r373165 fixed an issue where a templated noexcept member function with a reference qualifier would be indented more than expected: ``` // Formatting produced with LLVM style with AlwaysBreakTemplateDeclarations: Yes // before r373165: struct f { template <class T> void bar() && noexcept {} }; // after: struct f { template <class T> void bar() && noexcept {} }; ``` The way this is done is that in the AnnotatingParser in `lib/FormatTokenAnnotator.cpp` the determination of the usage of a `&` or `&&` (the line in determineTokenType ``` Current.Type = determineStarAmpUsage(... ``` is not performed in some cases anymore, combining with a few additional related checks afterwards. The net effect of these checks results in the `&` or `&&` token to start being classified as `TT_Unknown` in cases where before `r373165` it would be classified as `TT_UnaryOperator` or `TT_PointerOrReference` by `determineStarAmpUsage`. This inadvertently caused 2 classes of regressions I'm aware of: - The address-of `&` after a function assignment would be classified as `TT_Unknown`, causing spaces to surround it, disregarding style options: ``` // before r373165: void (*fun_ptr)(void) = &fun; // after: void (*fun_ptr)(void) = & fun; ``` - In cases where there is a function declaration list -- looking macro between a template line and the start of the function declaration, an `&` as part of the return type would be classified as `TT_Unknown`, causing spaces to surround it: ``` // before r373165: template <class T> DEPRECATED("lala") Type& foo(); // after: template <class T> DEPRECATED("lala") Type & foo(); ``` In these cases the problems are rooted in the skipping of the classification of a `&` (and similarly `&&`) by determineStarAmpUsage which effects the formatting decisions later in the pipeline. I've looked into the goal of r373165 and noticed that replacing `noexcept` with `const` in the given example produces no extra indentation with the old code: ``` // before r373165: struct f { template <class T> int foo() & const {} }; struct f { template <class T> int foo() & noexcept {} }; ``` I investigated how clang-format annotated these two examples differently to determine the places where the processing of both diverges in the pipeline. There were two places where the processing diverges, causing the extra indent in the `noexcept` case: 1. The `const` is annotated as a `TT_TrailingAnnotation`, whereas `noexcept` is annotated as `TT_Unknown`. I've updated the `determineTokenType` function to account for this by adding a missing `tok:kw_noexcept` to the clause that marks a token as `TT_TrailingAnnotation`. 2. The `&` in the second example is wrongly identified as `TT_BinaryOperator` in `determineStarAmpUsage`. This is the reason for the extra indentation -- clang-format gets confused and thinks this is an expression. I've updated `determineStarAmpUsage` to check for `tok:kw_noexcept`. With these two updates in place, the additional parsing introduced by r373165 becomes unnecessary and all added tests pass (with updates, as now clang-format respects the style configuration for spaces around the `&` in the test examples). I've removed these additions and added regression tests for the cases above. Reviewers: AndWass, MyDeveloperDay Reviewed By: MyDeveloperDay Subscribers: cfe-commits Tags: #clang, #clang-format Differential Revision: https://reviews.llvm.org/D68695
  55. Fix Wdocumentation unknown parameter warning. NFCI.
  56. [llvm-exegesis] Ensure that ExecutableFunction are aligned. Summary: Experiments show that this is the alignment we get (for ELF+Linux), but let's ensure that we have it. Reviewers: gchatelet Subscribers: tschuett, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68703
  57. Add and adjust saturating tests. NFC This adds some extra testing to the existing [su][add/sub]_sat X86 and AArch64 tests and adds equivalent tests for ARM.
  58. [clangd] Make sure ReplyCallbacks are destroyed before RequestCancelersMutex Summary: After rL374163, replycallbacks might have a cancellable context, which will try to access RequestCancellers on destruction. See http://45.33.8.238/mac/1245/step_7.txt for a sample failure. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits, thakis Tags: #clang Differential Revision: https://reviews.llvm.org/D68702
  59. [clang-offload-bundler] Support `.cui` and `.d`. Reviewers: tra, yaxunl Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D68663
  60. [LV] Emitting SCEV checks with OptForSize When optimising for size and SCEV runtime checks need to be emitted to check overflow behaviour, the loop vectorizer can run in this assert: LoopVectorize.cpp:2699: void llvm::InnerLoopVectorizer::emitSCEVChecks( llvm::Loop *, llvm::BasicBlock *): Assertion `!BB->getParent()->hasOptSize() && "Cannot SCEV check stride or overflow when opt We should not generate predicates while optimising for size because code will be generated for predicates such as these SCEV overflow runtime checks. This should fix PR43371. Differential Revision: https://reviews.llvm.org/D68082
  61. [mips] Rename local variable. NFC
  62. [mips] Split expandLoadImmReal into multiple methods. NFC The `expandLoadImmReal` handles four different and almost non-overlapping cases: loading a "single" float immediate into a GPR, loading a "single" float immediate into a FPR, and the same couple for a "double" float immediate. It's better to move each `else if` branch into separate methods.
  63. [clangd] Propagate context into reply handlers
  64. [llvm-exegesis] Fix r374158 Some bots complain about missing 'class': LlvmState.h:70:40: error: declaration of ‘std::unique_ptr<const llvm::TargetMachine> llvm::exegesis::LLVMState::TargetMachine’ [-fpermissive] std::unique_ptr<const TargetMachine> TargetMachine;
  65. [CostModel][X86] Add tests for insertelement to non-immediate vector element indices
  66. [CostModel][X86] Add tests for extractelement from non-immediate vector element indices
  67. [ARM] Add saturating arithmetic tests for MVE. NFC
  68. [llvm-exegesis][NFC] Remove extra `llvm::` qualifications. Summary: Second patch: in the lib. Reviewers: gchatelet Subscribers: nemanjai, tschuett, MaskRay, mgrang, jsji, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68692
  69. [llvm-exegesis][NFC] Remove extra `llvm::` qualifications. Summary: First patch: in unit tests. Subscribers: nemanjai, tschuett, MaskRay, jsji, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68687
  70. [mips] Set default float ABI to "soft" on FreeBSD Initial patch by Kyle Evans. Fix PR43596
  71. [DebugInfo] Enable call site debug info for ARM and AArch64 ARM and AArch64 SelectionDAG support for tacking parameter forwarding register is implemented so we can allow clang invocations for those two targets. Beside that restrict debug entry value support to be emitted for LimitedDebugInfo info and FullDebugInfo. Other types of debug info do not have functions nor variables debug info. Reviewers: aprantl, probinson, dstenb, vsk Reviewed By: vsk Differential Revision: https://reviews.llvm.org/D67004
  72. [Sema] Emit diagnostics for uncorrected delayed typos at the end of TU Summary: Instead of asserting all typos are corrected in the sema destructor. The sema destructor is not run in the common case of running the compiler with the -disable-free cc1 flag (which is the default in the driver). Having this assertion led to crashes in libclang and clangd, which are not reproducible when running the compiler. Asserting at the end of the TU could be an option, but finding all missing typo correction cases is hard and having worse diagnostics instead of a failing assertion is a better trade-off. For more discussion on this, see: https://lists.llvm.org/pipermail/cfe-dev/2019-July/062872.html Reviewers: sammccall, rsmith Reviewed By: rsmith Subscribers: usaxena95, dgoldman, jkorous, vsapsai, rnk, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64799
  73. Revert r374006: Reland 'Add VFS support for sanitizers' blacklist' Also revert follow-up changes to the test. Reason: the patch breaks our internal clang-tidy integration. It's also unclear why we should use getRealPath instead of plumbing the VFS to SanitizerBlacklist, see original commit thread of cfe-commits for a discussion.
  74. [TableGen] Fix crash when using HwModes in CodeEmitterGen When an instruction has an encoding definition for only a subset of the available HwModes, ensure we just avoid generating an encoding rather than crash.
  75. [llvm-exegesis] Add missing std::move in rL374146. This was breaking some bots: /home/buildbots/ppc64le-clang-lnt-test/clang-ppc64le-lnt/llvm/include/llvm/Support/Error.h:483:5: required from ‘llvm::Expected<T>::Expected(OtherT&&, typename std::enable_if<std::is_convertible<_Rep2, _Rep>::value>::type*) [with OtherT = std::vector<llvm::exegesis::CodeTemplate>&; T = std::vector<llvm::exegesis::CodeTemplate>; typename std::enable_if<std::is_convertible<_Rep2, _Rep>::value>::type = void]’ /home/buildbots/ppc64le-clang-lnt-test/clang-ppc64le-lnt/llvm/tools/llvm-exegesis/lib/X86/Target.cpp:238:20: required from here /usr/include/c++/6/bits/stl_construct.h:75:7: error: use of deleted function ‘llvm::exegesis::CodeTemplate::CodeTemplate(const llvm::exegesis::CodeTemplate&)’ { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); } ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  76. Unify the two CRC implementations David added the JamCRC implementation in r246590. More recently, Eugene added a CRC-32 implementation in r357901, which falls back to zlib's crc32 function if present. These checksums are essentially the same, so having multiple implementations seems unnecessary. This replaces the CRC-32 implementation with the simpler one from JamCRC, and implements the JamCRC interface in terms of CRC-32 since this means it can use zlib's implementation when available, saving a few bytes and potentially making it faster. JamCRC took an ArrayRef<char> argument, and CRC-32 took a StringRef. This patch changes it to ArrayRef<uint8_t> which I think is the best choice, and simplifies a few of the callers nicely. Differential revision: https://reviews.llvm.org/D68570
  77. [llvm-exegesis][NFC] Fix rL374146. Remove extra semicolon: Target.cpp:187:2: warning: extra ‘;’ [-Wpedantic]
  78. [llvm-exegesis] Explore LEA addressing modes. Summary: This will help for PR32326. This shows the well-known issue with `RBP` and `R13` as base registers. Reviewers: gchatelet Subscribers: tschuett, llvm-commits, RKSimon, andreadb Tags: #llvm Differential Revision: https://reviews.llvm.org/D68646
  79. Revert r374139, "[dsymutil] Fix handling of common symbols in multiple object files." The added test files ("com", "com1.o", "com2.o") are reserved names on Windows, and makes 'git checkout' fail with a filesystem error.
  80. [llvm-exegesis][NFC] Remove unecessary `using llvm::` directives. We've been in namespace llvm for at least a year.
Revision 374263 by yaxunl:
[CUDA][HIP] Fix host/device check with -fopenmp

CUDA/HIP program may be compiled with -fopenmp. In this case, -fopenmp is only passed to host compilation
to take advantages of multi-threads computation.

CUDA/HIP and OpenMP both use Sema::DeviceCallGraph to store functions to be analyzed and remove them
once they decide the function is sure to be emitted. CUDA/HIP and OpenMP have different functions to determine
if a function is sure to be emitted.

To check host/device correctly for CUDA/HIP when -fopenmp is enabled, there needs a unified logic to determine
whether a function is to be emitted. The logic needs to be aware of both CUDA and OpenMP logic.

Differential Revision: https://reviews.llvm.org/D67837
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Sema/Sema.h (diff)clang.src/include/clang/Sema/Sema.h
The file was modified/cfe/trunk/lib/Sema/SemaCUDA.cpp (diff)clang.src/lib/Sema/SemaCUDA.cpp
The file was modified/cfe/trunk/lib/Sema/SemaDecl.cpp (diff)clang.src/lib/Sema/SemaDecl.cpp
The file was modified/cfe/trunk/lib/Sema/SemaOpenMP.cpp (diff)clang.src/lib/Sema/SemaOpenMP.cpp
The file was added/cfe/trunk/test/CodeGenCUDA/openmp-target.cuclang.src/test/CodeGenCUDA/openmp-target.cu
The file was modified/cfe/trunk/test/OpenMP/declare_target_messages.cpp (diff)clang.src/test/OpenMP/declare_target_messages.cpp
The file was modified/cfe/trunk/test/SemaCUDA/call-device-fn-from-host.cu (diff)clang.src/test/SemaCUDA/call-device-fn-from-host.cu
The file was modified/cfe/trunk/test/SemaCUDA/host-device-constexpr.cu (diff)clang.src/test/SemaCUDA/host-device-constexpr.cu
The file was added/cfe/trunk/test/SemaCUDA/openmp-static-func.cuclang.src/test/SemaCUDA/openmp-static-func.cu
The file was added/cfe/trunk/test/SemaCUDA/openmp-target.cuclang.src/test/SemaCUDA/openmp-target.cu
Revision 374261 by reames:
Conservatively add volatility and atomic checks in a few places

As background, starting in D66309, I'm working on support unordered atomics analogous to volatile flags on normal LoadSDNode/StoreSDNodes for X86.

As part of that, I spent some time going through usages of LoadSDNode and StoreSDNode looking for cases where we might have missed a volatility check or need an atomic check. I couldn't find any cases that clearly miscompile - i.e. no test cases - but a couple of pieces in code loop suspicious though I can't figure out how to exercise them.

This patch adds defensive checks and asserts in the places my manual audit found. If anyone has any ideas on how to either a) disprove any of the checks, or b) hit the bug they might be fixing, I welcome suggestions.

Differential Revision: https://reviews.llvm.org/D68419
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 374260 by gnsyncbot:
gn build: Merge r374245
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/llvm/unittests/CodeGen/GlobalISel/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/unittests/CodeGen/GlobalISel/BUILD.gn
Revision 374259 by tlively:
[WebAssembly] Fix tests missed in rL374235
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/MIR/WebAssembly/typed-immediate-operand-invalid0.mir (diff)llvm.src/test/CodeGen/MIR/WebAssembly/typed-immediate-operand-invalid0.mir
The file was modified/llvm/trunk/test/CodeGen/MIR/WebAssembly/typed-immediate-operand-invalid1.mir (diff)llvm.src/test/CodeGen/MIR/WebAssembly/typed-immediate-operand-invalid1.mir
The file was modified/llvm/trunk/unittests/Target/WebAssembly/WebAssemblyExceptionInfoTest.cpp (diff)llvm.src/unittests/Target/WebAssembly/WebAssemblyExceptionInfoTest.cpp
Revision 374258 by morehouse:
[sanitizer_common] Remove OnPrint from Go build.

Summary: Go now uses __sanitizer_on_print instead.

Reviewers: vitalybuka, dvyukov

Reviewed By: vitalybuka

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68621
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_printf.cpp (diff)compiler-rt.src/lib/sanitizer_common/sanitizer_printf.cpp
Revision 374257 by arsenm:
AMDGPU: Don't fold copies to physregs

In a future patch, this will help cleanup m0 handling.

The register coalescer handles copies from a register that
materializes an immediate, but doesn't handle move immediates
itself. The virtual register uses will often be allocated to the same
register, so there end up being no real copy.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIFoldOperands.cpp (diff)llvm.src/lib/Target/AMDGPU/SIFoldOperands.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/stack-pointer-offset-relative-frameindex.ll (diff)llvm.src/test/CodeGen/AMDGPU/stack-pointer-offset-relative-frameindex.ll
Revision 374255 by arsenm:
AMDGPU/GlobalISel: Fix crash on wide constant load with VGPR pointer

This was ignoring the register bank of the input pointer, and
isUniformMMO seems overly aggressive.

This will now conservatively assume a VGPR in cases where the incoming
bank hasn't been determined yet (i.e. is from a loop phi).
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-load.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/regbankselect-load.mir
Revision 374254 by arsenm:
AMDGPU: Relax register classes used
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp (diff)llvm.src/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
Revision 374253 by arsenm:
AMDGPU: Fix typos
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIFixSGPRCopies.cpp (diff)llvm.src/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
Revision 374252 by arsenm:
GlobalISel: Implement fewerElementsVector for G_BUILD_VECTOR

Turn it into a G_CONCAT_VECTORS of G_BUILD_VECTOR.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-build-vector.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-build-vector.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-extract.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-extract.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fcanonicalize.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fcanonicalize.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fcos.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fcos.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-ffloor.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-ffloor.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fma.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fma.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fmad.s16.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fmad.s16.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fmaxnum.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fmaxnum.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fminnum.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fminnum.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fsin.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fsin.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fsqrt.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fsqrt.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fsub.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fsub.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-load-constant.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-load-constant.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-load-flat.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-load-flat.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-load-local.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-load-local.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-phi.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-phi.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-shuffle-vector.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-shuffle-vector.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-smax.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-smax.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-smin.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-smin.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-umax.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-umax.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-umin.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-umin.mir
Revision 374249 by nico:
gn build: (manually) merge r374219
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/utils/gn/secondary/clang/tools/clang-offload-wrapperllvm.src/utils/gn/secondary/clang/tools/clang-offload-wrapper
The file was added/llvm/trunk/utils/gn/secondary/clang/tools/clang-offload-wrapper/BUILD.gnllvm.src/utils/gn/secondary/clang/tools/clang-offload-wrapper/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/clang/tools/driver/BUILD.gn (diff)llvm.src/utils/gn/secondary/clang/tools/driver/BUILD.gn
Revision 374248 by caseycarter:
[libc++][test] Miscellaneous MSVC cleanups

* Silence unused-local-typedef warnings: `map.cons/assign_initializer_list.pass.cpp` (and the `set.cons` variant) uses a local typedef only within `LIBCPP_ASSERT`s, so clang diagnoses it as unused when testing non-libc++.
* Add missing include: `c.math/abs.pass.cpp` uses `std::numeric_limits` but failed to `#include <limits>`.
* Don't test non-type: A "recent" change to `meta.trans.other/underlying_type.pass.cpp` unconditionally tests the type `F` which is conditionally defined.
* Use `hash<long long>` instead of `hash<short>` with `int` in `unordered_meow` deduction guide tests to avoid truncation warnings.
* Convert `3.14` explicitly in `midpoint.float.pass` since MSVC incorrectly diagnoses `float meow = 3.14;` as truncating.

Differential Revision: https://reviews.llvm.org/D68681
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/test/std/containers/associative/map/map.cons/assign_initializer_list.pass.cpp (diff)libcxx.src/test/std/containers/associative/map/map.cons/assign_initializer_list.pass.cpp
The file was modified/libcxx/trunk/test/std/containers/associative/set/set.cons/assign_initializer_list.pass.cpp (diff)libcxx.src/test/std/containers/associative/set/set.cons/assign_initializer_list.pass.cpp
The file was modified/libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/deduct.pass.cpp (diff)libcxx.src/test/std/containers/unord/unord.map/unord.map.cnstr/deduct.pass.cpp
The file was modified/libcxx/trunk/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/deduct.pass.cpp (diff)libcxx.src/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/deduct.pass.cpp
The file was modified/libcxx/trunk/test/std/containers/unord/unord.set/unord.set.cnstr/deduct.pass.cpp (diff)libcxx.src/test/std/containers/unord/unord.set/unord.set.cnstr/deduct.pass.cpp
The file was modified/libcxx/trunk/test/std/numerics/c.math/abs.pass.cpp (diff)libcxx.src/test/std/numerics/c.math/abs.pass.cpp
The file was modified/libcxx/trunk/test/std/numerics/numeric.ops/numeric.ops.midpoint/midpoint.float.pass.cpp (diff)libcxx.src/test/std/numerics/numeric.ops/numeric.ops.midpoint/midpoint.float.pass.cpp
The file was modified/libcxx/trunk/test/std/utilities/meta/meta.trans/meta.trans.other/underlying_type.pass.cpp (diff)libcxx.src/test/std/utilities/meta/meta.trans/meta.trans.other/underlying_type.pass.cpp
Revision 374245 by mggm:
[GISel] Refactor and split PatternMatchTest. NFC

Split the ConstantFold part into a separate file and
make it use the fixture GISelMITest.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/unittests/CodeGen/GlobalISel/CMakeLists.txt (diff)llvm.src/unittests/CodeGen/GlobalISel/CMakeLists.txt
The file was added/llvm/trunk/unittests/CodeGen/GlobalISel/ConstantFoldingTest.cppllvm.src/unittests/CodeGen/GlobalISel/ConstantFoldingTest.cpp
The file was modified/llvm/trunk/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp (diff)llvm.src/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp
Revision 374243 by evandro:
[InstCombine] Fix PR43617

Check for `nullptr` before inspecting composite function.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Utils/SimplifyLibCalls.cpp (diff)llvm.src/lib/Transforms/Utils/SimplifyLibCalls.cpp
Revision 374241 by rampitec:
[AMDGPU] Fixed dpp combine of VOP1

If original instruction did not have source modifiers they were
not added to the new DPP instruction as well, even if needed.

Differential Revision: https://reviews.llvm.org/D68729
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/GCNDPPCombine.cpp (diff)llvm.src/lib/Target/AMDGPU/GCNDPPCombine.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/dpp_combine.mir (diff)llvm.src/test/CodeGen/AMDGPU/dpp_combine.mir
Revision 374240 by mcinally:
[IRBuilder] Update IRBuilder::CreateFNeg(...) to return a UnaryOperator

Also update Clang to call Builder.CreateFNeg(...) for UnaryMinus.

Differential Revision: https://reviews.llvm.org/D61675
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGExprScalar.cpp (diff)clang.src/lib/CodeGen/CGExprScalar.cpp
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-2velem.c (diff)clang.src/test/CodeGen/aarch64-neon-2velem.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-fma.c (diff)clang.src/test/CodeGen/aarch64-neon-fma.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-intrinsics.c (diff)clang.src/test/CodeGen/aarch64-neon-intrinsics.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-misc.c (diff)clang.src/test/CodeGen/aarch64-neon-misc.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-scalar-x-indexed-elem.c (diff)clang.src/test/CodeGen/aarch64-neon-scalar-x-indexed-elem.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-v8.2a-fp16-intrinsics.c (diff)clang.src/test/CodeGen/aarch64-v8.2a-fp16-intrinsics.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-v8.2a-neon-intrinsics.c (diff)clang.src/test/CodeGen/aarch64-v8.2a-neon-intrinsics.c
The file was modified/cfe/trunk/test/CodeGen/arm-v8.2a-neon-intrinsics.c (diff)clang.src/test/CodeGen/arm-v8.2a-neon-intrinsics.c
The file was modified/cfe/trunk/test/CodeGen/arm_neon_intrinsics.c (diff)clang.src/test/CodeGen/arm_neon_intrinsics.c
The file was modified/cfe/trunk/test/CodeGen/avx512f-builtins.c (diff)clang.src/test/CodeGen/avx512f-builtins.c
The file was modified/cfe/trunk/test/CodeGen/avx512vl-builtins.c (diff)clang.src/test/CodeGen/avx512vl-builtins.c
The file was modified/cfe/trunk/test/CodeGen/builtins-ppc-vsx.c (diff)clang.src/test/CodeGen/builtins-ppc-vsx.c
The file was modified/cfe/trunk/test/CodeGen/complex-math.c (diff)clang.src/test/CodeGen/complex-math.c
The file was modified/cfe/trunk/test/CodeGen/exprs.c (diff)clang.src/test/CodeGen/exprs.c
The file was modified/cfe/trunk/test/CodeGen/fma-builtins.c (diff)clang.src/test/CodeGen/fma-builtins.c
The file was modified/cfe/trunk/test/CodeGen/fma4-builtins.c (diff)clang.src/test/CodeGen/fma4-builtins.c
The file was modified/cfe/trunk/test/CodeGen/fp16-ops.c (diff)clang.src/test/CodeGen/fp16-ops.c
The file was modified/cfe/trunk/test/CodeGen/zvector.c (diff)clang.src/test/CodeGen/zvector.c
The file was modified/cfe/trunk/test/CodeGen/zvector2.c (diff)clang.src/test/CodeGen/zvector2.c
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/test/CodeGen/AMDGPU/amdgpu-codegenprepare-idiv.ll (diff)llvm.src/test/CodeGen/AMDGPU/amdgpu-codegenprepare-idiv.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/divrem24-assume.ll (diff)llvm.src/test/CodeGen/AMDGPU/divrem24-assume.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/cos-1.ll (diff)llvm.src/test/Transforms/InstCombine/cos-1.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/fast-math.ll (diff)llvm.src/test/Transforms/InstCombine/fast-math.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/fmul.ll (diff)llvm.src/test/Transforms/InstCombine/fmul.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/select-crash.ll (diff)llvm.src/test/Transforms/InstCombine/select-crash.ll
The file was modified/llvm/trunk/unittests/IR/InstructionsTest.cpp (diff)llvm.src/unittests/IR/InstructionsTest.cpp
Revision 374235 by tlively:
[WebAssembly] Make returns variadic

Summary:
This is necessary and sufficient to get simple cases of multiple
return working with multivalue enabled. More complex cases will
require block and loop signatures to be generalized to potentially be
type indices as well.

Reviewers: aheejin, dschuff

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

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68684
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp (diff)llvm.src/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyFastISel.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyInstrControl.td (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyInstrControl.td
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyInstrInfo.td (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyPeephole.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyPeephole.cpp
The file was modified/llvm/trunk/test/CodeGen/MIR/WebAssembly/int-type-register-class-name.mir (diff)llvm.src/test/CodeGen/MIR/WebAssembly/int-type-register-class-name.mir
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/atomic-fence.mir (diff)llvm.src/test/CodeGen/WebAssembly/atomic-fence.mir
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/eh-labels.mir (diff)llvm.src/test/CodeGen/WebAssembly/eh-labels.mir
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/explicit-locals.mir (diff)llvm.src/test/CodeGen/WebAssembly/explicit-locals.mir
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/function-info.mir (diff)llvm.src/test/CodeGen/WebAssembly/function-info.mir
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/llround-conv-i32.ll (diff)llvm.src/test/CodeGen/WebAssembly/llround-conv-i32.ll
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/multivalue.ll (diff)llvm.src/test/CodeGen/WebAssembly/multivalue.ll
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/reg-argument.mir (diff)llvm.src/test/CodeGen/WebAssembly/reg-argument.mir
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/reg-copy.mir (diff)llvm.src/test/CodeGen/WebAssembly/reg-copy.mir
The file was modified/llvm/trunk/test/DebugInfo/WebAssembly/dbg-value-move-clone.mir (diff)llvm.src/test/DebugInfo/WebAssembly/dbg-value-move-clone.mir
The file was modified/llvm/trunk/test/DebugInfo/WebAssembly/dbg-value-move-reg-stackify.mir (diff)llvm.src/test/DebugInfo/WebAssembly/dbg-value-move-reg-stackify.mir
Revision 374233 by wmi:
[SampleFDO] Add indexing for function profiles so they can be loaded on demand
in ExtBinary format

Currently for Text, Binary and ExtBinary format profiles, when we compile a
module with samplefdo, even if there is no function showing up in the profile,
we have to load all the function profiles from the profile input. That is a
waste of compile time.

CompactBinary format profile has already had the support of loading function
profiles on demand. In this patch, we add the support to load profile on
demand for ExtBinary format. It will work no matter the sections in ExtBinary
format profile are compressed or not. Experiment shows it reduces the time to
compile a server benchmark by 30%.

When profile remapping and loading function profiles on demand are both used,
extra work needs to be done so that the loading on demand process will take
the name remapping into consideration. It will be addressed in a follow-up
patch.

Differential Revision: https://reviews.llvm.org/D68601
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ProfileData/SampleProf.h (diff)llvm.src/include/llvm/ProfileData/SampleProf.h
The file was modified/llvm/trunk/include/llvm/ProfileData/SampleProfReader.h (diff)llvm.src/include/llvm/ProfileData/SampleProfReader.h
The file was modified/llvm/trunk/include/llvm/ProfileData/SampleProfWriter.h (diff)llvm.src/include/llvm/ProfileData/SampleProfWriter.h
The file was modified/llvm/trunk/lib/ProfileData/SampleProfReader.cpp (diff)llvm.src/lib/ProfileData/SampleProfReader.cpp
The file was modified/llvm/trunk/lib/ProfileData/SampleProfWriter.cpp (diff)llvm.src/lib/ProfileData/SampleProfWriter.cpp
The file was modified/llvm/trunk/lib/Transforms/IPO/SampleProfile.cpp (diff)llvm.src/lib/Transforms/IPO/SampleProfile.cpp
The file was modified/llvm/trunk/test/Transforms/SampleProfile/Inputs/inline.extbinary.afdo (diff)llvm.src/test/Transforms/SampleProfile/Inputs/inline.extbinary.afdo
The file was modified/llvm/trunk/test/Transforms/SampleProfile/Inputs/profsampleacc.extbinary.afdo (diff)llvm.src/test/Transforms/SampleProfile/Inputs/profsampleacc.extbinary.afdo
The file was modified/llvm/trunk/unittests/ProfileData/SampleProfTest.cpp (diff)llvm.src/unittests/ProfileData/SampleProfTest.cpp
Revision 374232 by dblaikie:
llvm-dwarfdump: Support multiple debug_loclists contributions

Also fixing the incorrect "offset" field being computed/printed for each
location list.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h (diff)llvm.src/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp (diff)llvm.src/lib/DebugInfo/DWARF/DWARFContext.cpp
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp (diff)llvm.src/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/debug-loclists.ll (diff)llvm.src/test/CodeGen/X86/debug-loclists.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/dwarfdump-debug-loclists.test (diff)llvm.src/test/DebugInfo/X86/dwarfdump-debug-loclists.test
The file was added/llvm/trunk/test/tools/llvm-dwarfdump/X86/debug_loclists_multiple.sllvm.src/test/tools/llvm-dwarfdump/X86/debug_loclists_multiple.s
The file was modified/llvm/trunk/test/tools/llvm-dwarfdump/X86/debug_loclists_startx_length.s (diff)llvm.src/test/tools/llvm-dwarfdump/X86/debug_loclists_startx_length.s
Revision 374230 by dr87:
[Docs] Adds section for Additional Topics on Reference page

Adds a new section for Additional Topics on the Reference documentation page. Also moves Support Library topic to User Guides page.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/Reference.rst (diff)llvm.src/docs/Reference.rst
The file was modified/llvm/trunk/docs/UserGuides.rst (diff)llvm.src/docs/UserGuides.rst
Revision 374228 by jakehehrlich:
[libFuzzer] Fix Alarm callback in fuchsia.

This patch adds an #if macro to skip the InFuzzingThread() comparison
for fuchsia, similar to what it is done for Windows and NetBSD.

In fuchsia, the alarm callback runs in a separate thread[0], making it fail
the comparison InFuzzingThread(), breaking the -timeout flag.

[0]:
https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp#L323

Author: charco (aka Marco  Vanotti)
Differential Revision: https://reviews.llvm.org/D68166
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerLoop.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerLoop.cpp
Revision 374224 by abataev:
[OPENMP50]Fix scoring of contexts with and without user provided scores.

The context selector with user provided score must have higher score
than the context selector without user provided score.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp (diff)clang.src/lib/CodeGen/CGOpenMPRuntime.cpp
The file was modified/cfe/trunk/test/OpenMP/declare_variant_implementation_vendor_codegen.cpp (diff)clang.src/test/OpenMP/declare_variant_implementation_vendor_codegen.cpp
Revision 374223 by Vitaly Buka:
[sanitizer, NFC] Fix grammar in comment
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_trap_handler.cpp (diff)compiler-rt.src/test/sanitizer_common/TestCases/Linux/signal_trap_handler.cpp
Revision 374222 by Vitaly Buka:
[System Model] [TTI] Define AMDGPUTTIImpl::getST and AMDGPUTTIImpl::getTLI

To fix "infinite recursion" warning.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h (diff)llvm.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
Revision 374221 by Vitaly Buka:
[System Model] [TTI] Fix virtual destructor warning
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/BasicTTIImpl.h (diff)llvm.src/include/llvm/CodeGen/BasicTTIImpl.h
Revision 374220 by Vitaly Buka:
[sanitizer] Disable signal_trap_handler on s390
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_trap_handler.cpp (diff)compiler-rt.src/test/sanitizer_common/TestCases/Linux/signal_trap_handler.cpp
Revision 374219 by sdmitriev:
[Clang][OpenMP Offload] Add new tool for wrapping offload device binaries

This patch removes the remaining part of the OpenMP offload linker scripts which was used for inserting device binaries into the output linked binary. Device binaries are now inserted into the host binary with a help of the wrapper bit-code file which contains device binaries as data. Wrapper bit-code file is dynamically created by the clang driver with a help of new tool clang-offload-wrapper which takes device binaries as input and produces bit-code file with required contents. Wrapper bit-code is then compiled to an object and resulting object is appended to the host linking by the clang driver.

This is the second part of the patch for eliminating OpenMP linker script (please see https://reviews.llvm.org/D64943).

Differential Revision: https://reviews.llvm.org/D68166
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Driver/Action.h (diff)clang.src/include/clang/Driver/Action.h
The file was modified/cfe/trunk/include/clang/Driver/Options.td (diff)clang.src/include/clang/Driver/Options.td
The file was modified/cfe/trunk/include/clang/Driver/ToolChain.h (diff)clang.src/include/clang/Driver/ToolChain.h
The file was modified/cfe/trunk/lib/Driver/Action.cpp (diff)clang.src/lib/Driver/Action.cpp
The file was modified/cfe/trunk/lib/Driver/Driver.cpp (diff)clang.src/lib/Driver/Driver.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChain.cpp (diff)clang.src/lib/Driver/ToolChain.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cpp (diff)clang.src/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.h (diff)clang.src/lib/Driver/ToolChains/Clang.h
The file was modified/cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp (diff)clang.src/lib/Driver/ToolChains/CommonArgs.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/CommonArgs.h (diff)clang.src/lib/Driver/ToolChains/CommonArgs.h
The file was modified/cfe/trunk/lib/Driver/ToolChains/Cuda.cpp (diff)clang.src/lib/Driver/ToolChains/Cuda.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/Gnu.cpp (diff)clang.src/lib/Driver/ToolChains/Gnu.cpp
The file was added/cfe/trunk/test/Driver/clang-offload-wrapper.cclang.src/test/Driver/clang-offload-wrapper.c
The file was modified/cfe/trunk/test/Driver/openmp-offload-gpu.c (diff)clang.src/test/Driver/openmp-offload-gpu.c
The file was modified/cfe/trunk/test/Driver/openmp-offload.c (diff)clang.src/test/Driver/openmp-offload.c
The file was modified/cfe/trunk/tools/CMakeLists.txt (diff)clang.src/tools/CMakeLists.txt
The file was added/cfe/trunk/tools/clang-offload-wrapperclang.src/tools/clang-offload-wrapper
The file was added/cfe/trunk/tools/clang-offload-wrapper/CMakeLists.txtclang.src/tools/clang-offload-wrapper/CMakeLists.txt
The file was added/cfe/trunk/tools/clang-offload-wrapper/ClangOffloadWrapper.cppclang.src/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp
Revision 374214 by dr87:
[Docs] Adds Documentation links to sidebar

Adds links to Getting Started/Tutorials, User Guides, and Reference documentation pages to sidebar. Also adds a new section for LLVM IR on the Reference documentation page.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/GettingStartedTutorials.rst (diff)llvm.src/docs/GettingStartedTutorials.rst
The file was modified/llvm/trunk/docs/Reference.rst (diff)llvm.src/docs/Reference.rst
The file was modified/llvm/trunk/docs/_templates/indexsidebar.html (diff)llvm.src/docs/_templates/indexsidebar.html
Revision 374213 by Vitaly Buka:
[sanitizer] Make signal_name a C test
Change TypePath in RepositoryPath in Workspace
The file was added/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_name.ccompiler-rt.src/test/sanitizer_common/TestCases/Linux/signal_name.c
The file was removed/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_name.cppcompiler-rt.src/test/sanitizer_common/TestCases/Linux/signal_name.cpp
Revision 374211 by Vitaly Buka:
[sanitizer] Use raise() in test and cover more signals
Change TypePath in RepositoryPath in Workspace
The file was added/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_name.cppcompiler-rt.src/test/sanitizer_common/TestCases/Linux/signal_name.cpp
The file was removed/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_trap.cppcompiler-rt.src/test/sanitizer_common/TestCases/Linux/signal_trap.cpp
Revision 374210 by spatel:
[ConstProp] add tests for extractelement with undef index; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/ConstProp/InsertElement.ll (diff)llvm.src/test/Transforms/ConstProp/InsertElement.ll
Revision 374208 by evandro:
[AMDGPU] Use math constants defined in MathExtras (NFC)

Use the the new math constants in `MathExtras.h`.

Differential revision: https://reviews.llvm.org/D68285
Change TypePath in RepositoryPath in Workspace
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/AMDGPULibCalls.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPULibCalls.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/R600ISelLowering.cpp (diff)llvm.src/lib/Target/AMDGPU/R600ISelLowering.cpp
Revision 374207 by evandro:
[Support] Add mathematical constants

Add own version of the mathematical constants from the upcoming C++20 `std::numbers`.

Differential revision: https://reviews.llvm.org/D68257
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/MathExtras.h (diff)llvm.src/include/llvm/Support/MathExtras.h
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/Transforms/Utils/SimplifyLibCalls.cpp (diff)llvm.src/lib/Transforms/Utils/SimplifyLibCalls.cpp
Revision 374205 by greened:
[System Model] [TTI] Update cache and prefetch TTI interfaces

Re-apply 9fdfb045ae8b/r365676 with fixes for PPC and Hexagon.  This involved
moving defaults from TargetTransformInfoImplBase to MCSubtargetInfo.

Rework the TTI cache and software prefetching APIs to prepare for the
introduction of a general system model.  Changes include:

- Marking existing interfaces const and/or override as appropriate
- Adding comments
- Adding BasicTTIImpl interfaces that delegate to a subtarget
  implementation
- Moving the default TargetTransformInfoImplBase implementation to a default
  MCSubtarget implementation

Only a handful of targets use these interfaces currently: AArch64, Hexagon, PPC
and SystemZ.  AArch64 already has a custom subtarget implementation, so its
custom TTI implementation is migrated to use the new facilities in BasicTTIImpl
to invoke its custom subtarget implementation.  The custom TTI implementations
continue to exist for the other targets with this change.  They are not moved
over to subtarget-based implementations.

The end goal is to have the default subtarget implementation defer to the system
model defined by the target.  With this change, the default MCSubtargetInfo
implementation essentially returns the defaults TargetTransformInfoImplBase used
to return.  Existing users of TTI defaults will hit the defaults now in
MCSubtargetInfo.  Targets that define their own custom TTI implementations won't
use the BasicTTIImpl implementations that route to the subtarget.

Once system models are in place for the targets that use these interfaces, their
custom TTI implementations can be removed.

Differential Revision: https://reviews.llvm.org/D63614
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Analysis/TargetTransformInfo.h (diff)llvm.src/include/llvm/Analysis/TargetTransformInfo.h
The file was modified/llvm/trunk/include/llvm/Analysis/TargetTransformInfoImpl.h (diff)llvm.src/include/llvm/Analysis/TargetTransformInfoImpl.h
The file was modified/llvm/trunk/include/llvm/CodeGen/BasicTTIImpl.h (diff)llvm.src/include/llvm/CodeGen/BasicTTIImpl.h
The file was modified/llvm/trunk/include/llvm/MC/MCSubtargetInfo.h (diff)llvm.src/include/llvm/MC/MCSubtargetInfo.h
The file was modified/llvm/trunk/lib/Analysis/TargetTransformInfo.cpp (diff)llvm.src/lib/Analysis/TargetTransformInfo.cpp
The file was modified/llvm/trunk/lib/MC/MCSubtargetInfo.cpp (diff)llvm.src/lib/MC/MCSubtargetInfo.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.h (diff)llvm.src/lib/Target/AArch64/AArch64Subtarget.h
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64TargetTransformInfo.cpp (diff)llvm.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64TargetTransformInfo.h (diff)llvm.src/lib/Target/AArch64/AArch64TargetTransformInfo.h
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonTargetTransformInfo.h (diff)llvm.src/lib/Target/Hexagon/HexagonTargetTransformInfo.h
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCTargetTransformInfo.cpp (diff)llvm.src/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCTargetTransformInfo.h (diff)llvm.src/lib/Target/PowerPC/PPCTargetTransformInfo.h
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZTargetTransformInfo.h (diff)llvm.src/lib/Target/SystemZ/SystemZTargetTransformInfo.h
Revision 374202 by vsapsai:
[ObjC generics] Fix not inheriting type bounds in categories/extensions.

When a category/extension doesn't repeat a type bound, corresponding
type parameter is substituted with `id` when used as a type argument. As
a result, in the added test case it was causing errors like

> type argument 'T' (aka 'id') does not satisfy the bound ('id<NSCopying>') of type parameter 'T'

We are already checking that type parameters should be consistent
everywhere (see `checkTypeParamListConsistency`) and update
`ObjCTypeParamDecl` to have correct underlying type. And when we use the
type parameter as a method return type or a method parameter type, it is
substituted to the bounded type. But when we use the type parameter as a
type argument, we check `ObjCTypeParamType` that ignores the updated
underlying type and remains `id`.

Fix by desugaring `ObjCTypeParamType` to the underlying type, the same
way we are doing with `TypedefType`.

rdar://problem/54329242

Reviewers: erik.pilkington, ahatanak

Reviewed By: erik.pilkington

Subscribers: jkorous, dexonsmith, ributzka, cfe-commits

Differential Revision: https://reviews.llvm.org/D66696
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/Type.h (diff)clang.src/include/clang/AST/Type.h
The file was modified/cfe/trunk/lib/AST/Type.cpp (diff)clang.src/lib/AST/Type.cpp
The file was modified/cfe/trunk/test/SemaObjC/parameterized_classes_subst.m (diff)clang.src/test/SemaObjC/parameterized_classes_subst.m
Revision 374200 by hliao:
[mangle] Fix mangling where an extra mangle context is required.

Summary:
- [Itanium C++ ABI][1], for certain contexts like default parameter and
  etc., mangling numbering will be local to the particular argument in
  which it appears.
- However, for these cases, the mangle numbering context is allocated per
  expression evaluation stack entry. That causes, for example, two
  lambdas defined/used understand the same default parameter are
  numbered as the same value and, in turn, one of them is not generated
  at all.
- In this patch, an extra mangle numbering context map is maintained in
  the AST context to map taht extra declaration context to its numbering
  context. So that, 2 different lambdas defined/used in the same default
  parameter are numbered differently.

[1]: https://itanium-cxx-abi.github.io/cxx-abi/abi.html

Reviewers: rsmith, eli.friedman

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D68715
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/ASTContext.h (diff)clang.src/include/clang/AST/ASTContext.h
The file was modified/cfe/trunk/include/clang/Sema/Sema.h (diff)clang.src/include/clang/Sema/Sema.h
The file was modified/cfe/trunk/lib/AST/ASTContext.cpp (diff)clang.src/lib/AST/ASTContext.cpp
The file was modified/cfe/trunk/lib/Sema/SemaLambda.cpp (diff)clang.src/lib/Sema/SemaLambda.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/mangle-lambdas.cpp (diff)clang.src/test/CodeGenCXX/mangle-lambdas.cpp
Revision 374198 by yaxunl:
[HIP] Fix -save-temps

Currently clang does not save some of the intermediate file generated during device compilation for HIP when -save-temps is specified.

This patch fixes that.

Differential Revision: https://reviews.llvm.org/D68665
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/Driver.cpp (diff)clang.src/lib/Driver/Driver.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp (diff)clang.src/lib/Driver/ToolChains/CommonArgs.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/HIP.cpp (diff)clang.src/lib/Driver/ToolChains/HIP.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/HIP.h (diff)clang.src/lib/Driver/ToolChains/HIP.h
The file was added/cfe/trunk/test/Driver/hip-save-temps.hipclang.src/test/Driver/hip-save-temps.hip
Revision 374196 by dblaikie:
DebugInfo: Shot in the dark attempt to fix ubsan error from r374122

(specifying an underlying type for the enum might also be suitable - but
this seems better/as good, since there's a clear expectation this can
contain values other than the actual enumerators of this enum)
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp (diff)llvm.src/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp
Revision 374194 by yln:
[lit] Refactor ProgressDisplay

Move progress display to separate file.  Simplify some code paths.
Decouple from other components via progress callback.  Remove unused
`_Display` class.

Reviewed By: serge-sans-paille

Differential Revision: https://reviews.llvm.org/D68525
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/lit/lit/ProgressBar.py (diff)llvm.src/utils/lit/lit/ProgressBar.py
The file was added/llvm/trunk/utils/lit/lit/display.pyllvm.src/utils/lit/lit/display.py
The file was modified/llvm/trunk/utils/lit/lit/main.py (diff)llvm.src/utils/lit/lit/main.py
The file was modified/llvm/trunk/utils/lit/lit/run.py (diff)llvm.src/utils/lit/lit/run.py
The file was modified/llvm/trunk/utils/lit/tests/progress-bar.py (diff)llvm.src/utils/lit/tests/progress-bar.py
Revision 374191 by efriedma:
[ARM] Fix arm_neon.h with -flax-vector-conversions=none

Really, we were already 99% of the way there; just needed a couple minor
fixes that affected 64-bit-only builtins.  Based on D61717.

Note that the change to builtin_str changes the type of a few
__builtin_neon_* intrinsics that had the "wrong" type.

Fixes https://bugs.llvm.org/show_bug.cgi?id=43341

Differential Revision: https://reviews.llvm.org/D68683
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-2velem.c (diff)clang.src/test/CodeGen/aarch64-neon-2velem.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-intrinsics.c (diff)clang.src/test/CodeGen/aarch64-neon-intrinsics.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-scalar-copy.c (diff)clang.src/test/CodeGen/aarch64-neon-scalar-copy.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-scalar-x-indexed-elem.c (diff)clang.src/test/CodeGen/aarch64-neon-scalar-x-indexed-elem.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-vget.c (diff)clang.src/test/CodeGen/aarch64-neon-vget.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-poly64.c (diff)clang.src/test/CodeGen/aarch64-poly64.c
The file was modified/cfe/trunk/test/CodeGen/aarch64-v8.2a-neon-intrinsics.c (diff)clang.src/test/CodeGen/aarch64-v8.2a-neon-intrinsics.c
The file was modified/cfe/trunk/test/CodeGen/arm64-lanes.c (diff)clang.src/test/CodeGen/arm64-lanes.c
The file was modified/cfe/trunk/test/CodeGen/arm64_vcopy.c (diff)clang.src/test/CodeGen/arm64_vcopy.c
The file was modified/cfe/trunk/test/CodeGen/arm_neon_intrinsics.c (diff)clang.src/test/CodeGen/arm_neon_intrinsics.c
The file was modified/cfe/trunk/test/Headers/arm-neon-header.c (diff)clang.src/test/Headers/arm-neon-header.c
The file was modified/cfe/trunk/utils/TableGen/NeonEmitter.cpp (diff)clang.src/utils/TableGen/NeonEmitter.cpp
Revision 374190 by spatel:
[InstCombine] add another test for gep inbounds; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstCombine/load-bitcast-vec.ll (diff)llvm.src/test/Transforms/InstCombine/load-bitcast-vec.ll
Revision 374189 by tlively:
[WebAssembly] Add builtin and intrinsic for v8x16.swizzle

Summary:
This clang builtin and corresponding LLVM intrinsic are necessary to
expose the exact semantics of the underlying WebAssembly instruction
to users. LLVM produces a poison value if the dynamic swizzle indices
are greater than the vector size, but the WebAssembly instruction sets
the corresponding output lane to zero. Users who depend on this
behavior can safely use this builtin.

Depends on D68527.

Reviewers: aheejin, dschuff

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

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D68531
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsWebAssembly.def (diff)clang.src/include/clang/Basic/BuiltinsWebAssembly.def
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cpp (diff)clang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/test/CodeGen/builtins-wasm.c (diff)clang.src/test/CodeGen/builtins-wasm.c
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsWebAssembly.td (diff)llvm.src/include/llvm/IR/IntrinsicsWebAssembly.td
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/simd-intrinsics.ll (diff)llvm.src/test/CodeGen/WebAssembly/simd-intrinsics.ll
Revision 374188 by tlively:
[WebAssembly] v8x16.swizzle and rewrite BUILD_VECTOR lowering

Summary:
Adds the new v8x16.swizzle SIMD instruction as specified at
https://github.com/WebAssembly/simd/blob/master/proposals/simd/SIMD.md#swizzling-using-variable-indices.
In addition to adding swizzles as a candidate lowering in
LowerBUILD_VECTOR, also rewrites and simplifies the lowering to
minimize the number of replace_lanes necessary rather than trying to
minimize code size. This leads to more uses of v128.const instead of
splats, which is expected to increase performance.

The new code will be easier to tune once V8 implements all the vector
construction operations, and it will also be easier to add new
candidate instructions in the future if necessary.

Reviewers: aheejin, dschuff

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

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68527
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISD.def (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyISD.def
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/simd-build-vector.ll (diff)llvm.src/test/CodeGen/WebAssembly/simd-build-vector.ll
The file was modified/llvm/trunk/test/MC/WebAssembly/simd-encodings.s (diff)llvm.src/test/MC/WebAssembly/simd-encodings.s
Revision 374186 by kpn:
[FPEnv][NFC] Change test to conform to strictfp attribute rules.

In particular, the function definition is not marked strictfp despite
containing a function marked strictfp. Also, if any function call is marked
strictfp then all function calls in that function must be marked.

This change to move the one strictfp call to a new properly marked function
meets all the new rules.

Tested with a stricter version of D68233.

Reviewed by: spatel
Approved by: spatel
Differential Revision: https://reviews.llvm.org/D68713
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Bitcode/compatibility.ll (diff)llvm.src/test/Bitcode/compatibility.ll
Revision 374183 by spatel:
[SLP] respect target register width for GEP vectorization (PR43578)

We failed to account for the target register width (max vector factor)
when vectorizing starting from GEPs. This causes vectorization to
proceed to obviously illegal widths as in:
https://bugs.llvm.org/show_bug.cgi?id=43578

For x86, this also means that SLP can produce rogue AVX or AVX512
code even when the user specifies a narrower vector width.

The AArch64 test in ext-trunc.ll appears to be better using the
narrower width. I'm not exactly sure what getelementptr.ll is trying
to do, but it's testing with "-slp-threshold=-18", so I'm not worried
about those diffs. The x86 test is an over-reduction from SPEC h264;
this patch appears to restore the perf loss caused by SLP when using
-march=haswell.

Differential Revision: https://reviews.llvm.org/D68667
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp (diff)llvm.src/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/AArch64/ext-trunc.ll (diff)llvm.src/test/Transforms/SLPVectorizer/AArch64/ext-trunc.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/AArch64/getelementptr.ll (diff)llvm.src/test/Transforms/SLPVectorizer/AArch64/getelementptr.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/load-merge.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/load-merge.ll
Revision 374182 by chill:
[AArch64] Ensure no tagged memory is left in the unallocated portion of the
stack

This patch makes sure that if we tag some memory, we untag that memory before
the function returns/throws via any exit, reachable from the tag operation. For
that we place the untag operation either at:

  a) the lifetime end call for the alloca, if that call post-dominates the
     lifetime start call (where the tag operation is placed), or it (the
     lifetime end call) dominates all reachable exits, otherwise
  b) at the reachable exits

Differential Revision: https://reviews.llvm.org/D68469
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64StackTagging.cpp (diff)llvm.src/lib/Target/AArch64/AArch64StackTagging.cpp
The file was added/llvm/trunk/test/CodeGen/AArch64/stack-tagging-ex-1.llllvm.src/test/CodeGen/AArch64/stack-tagging-ex-1.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/stack-tagging-ex-2.llllvm.src/test/CodeGen/AArch64/stack-tagging-ex-2.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/stack-tagging-untag-placement.llllvm.src/test/CodeGen/AArch64/stack-tagging-untag-placement.ll
Revision 374181 by jasonliu:
[NFC] Remove files got accidentally upload in llvm-svn 374179
Change TypePath in RepositoryPath in Workspace
The file was removed/llvm/trunk/D68650.diffllvm.src/D68650.diff
Revision 374179 by jasonliu:
[AIX][XCOFF][NFC] Change the SectionLen field name of CSect Auxiliary entry to SectionOrLength.

Summary:
According the the XCOFF document,
If
Then
XTY_SD
x_scnlen contains the csect length.
XTY_LD
x_scnlen contains the symbol table index of the containing csect.
XTY_CM
x_scnlen contains the csect length.
XTY_ER
x_scnlen contains 0.

Change the SectionLen member name to SectionOrLength is more reasonable.

Authored By: DiggerLin

Reviewed By: hubert.reinterpretcast

Differential Revision: https://reviews.llvm.org/D68650
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/D68650.diffllvm.src/D68650.diff
The file was modified/llvm/trunk/include/llvm/Object/XCOFFObjectFile.h (diff)llvm.src/include/llvm/Object/XCOFFObjectFile.h
The file was modified/llvm/trunk/tools/llvm-readobj/XCOFFDumper.cpp (diff)llvm.src/tools/llvm-readobj/XCOFFDumper.cpp
Revision 374178 by Jonas Devlieghere:
Re-land "[dsymutil] Fix handling of common symbols in multiple object files."

The original patch got reverted because it hit a long-standing legacy
issue on Windows that prevents files from being named `com`. Thanks
Kristina & Jeremy for pointing this out.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/dsymutil/Inputs/privatellvm.src/test/tools/dsymutil/Inputs/private
The file was added/llvm/trunk/test/tools/dsymutil/Inputs/private/tmpllvm.src/test/tools/dsymutil/Inputs/private/tmp
The file was added/llvm/trunk/test/tools/dsymutil/Inputs/private/tmp/commonllvm.src/test/tools/dsymutil/Inputs/private/tmp/common
The file was added/llvm/trunk/test/tools/dsymutil/Inputs/private/tmp/common/common.x86_64llvm.src/test/tools/dsymutil/Inputs/private/tmp/common/common.x86_64
The file was added/llvm/trunk/test/tools/dsymutil/Inputs/private/tmp/common/common1.ollvm.src/test/tools/dsymutil/Inputs/private/tmp/common/common1.o
The file was added/llvm/trunk/test/tools/dsymutil/Inputs/private/tmp/common/common2.ollvm.src/test/tools/dsymutil/Inputs/private/tmp/common/common2.o
The file was added/llvm/trunk/test/tools/dsymutil/X86/common-sym-multi.testllvm.src/test/tools/dsymutil/X86/common-sym-multi.test
The file was modified/llvm/trunk/tools/dsymutil/MachODebugMapParser.cpp (diff)llvm.src/tools/dsymutil/MachODebugMapParser.cpp
Revision 374177 by asbirlea:
[MemorySSA] Make the use of moveAllAfterMergeBlocks consistent.

Summary:
The rule for the moveAllAfterMergeBlocks API si for all instructions
from `From` to have been moved to `To`, while keeping the CFG edges (and
block terminators) unchanged.
Update all the callsites for moveAllAfterMergeBlocks to follow this.

Pending follow-up: since the same behavior is needed everytime, merge
all callsites into one. The common denominator may be the call to
`MergeBlockIntoPredecessor`.

Resolves PR43569.

Reviewers: george.burgess.iv

Subscribers: Prazek, sanjoy.google, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68659
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/MemorySSAUpdater.cpp (diff)llvm.src/lib/Analysis/MemorySSAUpdater.cpp
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopUnswitch.cpp (diff)llvm.src/lib/Transforms/Scalar/LoopUnswitch.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/LoopRotationUtils.cpp (diff)llvm.src/lib/Transforms/Utils/LoopRotationUtils.cpp
The file was added/llvm/trunk/test/Analysis/MemorySSA/pr43569.llllvm.src/test/Analysis/MemorySSA/pr43569.ll
Revision 374175 by mitchell:
[NFC] Reverting changes from test commit.
llvm commit access test succeeded.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/ClangFormatStyleOptions.rst (diff)clang.src/docs/ClangFormatStyleOptions.rst
Revision 374174 by mitchell:
[NFC] Test commit.
Testing llvm commit access only.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/ClangFormatStyleOptions.rst (diff)clang.src/docs/ClangFormatStyleOptions.rst
Revision 374173 by cryptoad:
[scudo][standalone] Get statistics in a char buffer

Summary:
Following up on D68471, this CL introduces some `getStats` APIs to
gather statistics in char buffers (`ScopedString` really) instead of
printing them out right away. Ultimately `printStats` will just
output the buffer, but that allows us to potentially do some work
on the intermediate buffer, and can be used for a `mallocz` type
of functionality. This allows us to pretty much get rid of all the
`Printf` calls around, but I am keeping the function in for
debugging purposes.

This changes the existing tests to use the new APIs when required.

I will add new tests as suggested in D68471 in another CL.

Reviewers: morehouse, hctim, vitalybuka, eugenis, cferris

Reviewed By: morehouse

Subscribers: delcypher, #sanitizers, llvm-commits

Tags: #llvm, #sanitizers

Differential Revision: https://reviews.llvm.org/D68653
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/scudo/standalone/combined.h (diff)compiler-rt.src/lib/scudo/standalone/combined.h
The file was modified/compiler-rt/trunk/lib/scudo/standalone/crc32_hw.cpp (diff)compiler-rt.src/lib/scudo/standalone/crc32_hw.cpp
The file was modified/compiler-rt/trunk/lib/scudo/standalone/primary32.h (diff)compiler-rt.src/lib/scudo/standalone/primary32.h
The file was modified/compiler-rt/trunk/lib/scudo/standalone/primary64.h (diff)compiler-rt.src/lib/scudo/standalone/primary64.h
The file was modified/compiler-rt/trunk/lib/scudo/standalone/quarantine.h (diff)compiler-rt.src/lib/scudo/standalone/quarantine.h
The file was modified/compiler-rt/trunk/lib/scudo/standalone/secondary.cpp (diff)compiler-rt.src/lib/scudo/standalone/secondary.cpp
The file was modified/compiler-rt/trunk/lib/scudo/standalone/secondary.h (diff)compiler-rt.src/lib/scudo/standalone/secondary.h
The file was modified/compiler-rt/trunk/lib/scudo/standalone/size_class_map.h (diff)compiler-rt.src/lib/scudo/standalone/size_class_map.h
The file was modified/compiler-rt/trunk/lib/scudo/standalone/string_utils.cpp (diff)compiler-rt.src/lib/scudo/standalone/string_utils.cpp
The file was modified/compiler-rt/trunk/lib/scudo/standalone/string_utils.h (diff)compiler-rt.src/lib/scudo/standalone/string_utils.h
The file was modified/compiler-rt/trunk/lib/scudo/standalone/tests/combined_test.cpp (diff)compiler-rt.src/lib/scudo/standalone/tests/combined_test.cpp
The file was modified/compiler-rt/trunk/lib/scudo/standalone/tests/primary_test.cpp (diff)compiler-rt.src/lib/scudo/standalone/tests/primary_test.cpp
The file was modified/compiler-rt/trunk/lib/scudo/standalone/tests/quarantine_test.cpp (diff)compiler-rt.src/lib/scudo/standalone/tests/quarantine_test.cpp
The file was modified/compiler-rt/trunk/lib/scudo/standalone/tests/secondary_test.cpp (diff)compiler-rt.src/lib/scudo/standalone/tests/secondary_test.cpp
Revision 374172 by krasimir:
[clang-format] Update noexcept reference qualifiers detection

Summary:
r373165 fixed an issue where a templated noexcept member function with a
reference qualifier would be indented more than expected:
```
// Formatting produced with LLVM style with AlwaysBreakTemplateDeclarations: Yes

// before r373165:
struct f {
  template <class T>
      void bar() && noexcept {}
};

// after:
struct f {
  template <class T>
  void bar() && noexcept {}
};

```
The way this is done is that in the AnnotatingParser in
`lib/FormatTokenAnnotator.cpp` the determination of the usage of a `&` or `&&`
(the line in determineTokenType

```
Current.Type = determineStarAmpUsage(...
```
is not performed in some cases anymore, combining with a few additional related
checks afterwards. The net effect of these checks results in the `&` or `&&`
token to start being classified as `TT_Unknown` in cases where before `r373165`
it would be classified as `TT_UnaryOperator` or `TT_PointerOrReference` by
`determineStarAmpUsage`.

This inadvertently caused 2 classes of regressions I'm aware of:

- The address-of `&` after a function assignment would be classified as
  `TT_Unknown`, causing spaces to surround it, disregarding style options:
```
// before r373165:
void (*fun_ptr)(void) = &fun;

// after:
void (*fun_ptr)(void) = & fun;
```

- In cases where there is a function declaration list -- looking macro between
  a template line and the start of the function declaration, an `&` as part of
  the return type would be classified as `TT_Unknown`, causing spaces to
  surround it:
```
// before r373165:
template <class T>
DEPRECATED("lala")
Type& foo();

// after:
template <class T>
DEPRECATED("lala")
Type & foo();
```

In these cases the problems are rooted in the skipping of the classification of
a `&` (and similarly `&&`) by determineStarAmpUsage which effects the formatting
decisions later in the pipeline.

I've looked into the goal of r373165 and noticed that replacing `noexcept` with
`const` in the given example produces no extra indentation with the old code:
```
// before r373165:
struct f {
  template <class T>
  int foo() & const {}
};

struct f {
  template <class T>
      int foo() & noexcept {}
};
```

I investigated how clang-format annotated these two examples differently to
determine the places where the processing of both diverges in the pipeline.
There were two places where the processing diverges, causing the extra indent in
the `noexcept` case:
1. The `const` is annotated as a `TT_TrailingAnnotation`, whereas `noexcept`
   is annotated as `TT_Unknown`. I've updated the `determineTokenType` function
   to account for this by adding a missing `tok:kw_noexcept` to the clause that
   marks a token as `TT_TrailingAnnotation`.
2. The `&` in the second example is wrongly identified as `TT_BinaryOperator`
   in `determineStarAmpUsage`. This is the reason for the extra indentation --
   clang-format gets confused and thinks this is an expression.
   I've updated `determineStarAmpUsage` to check for `tok:kw_noexcept`.

With these two updates in place, the additional parsing introduced by r373165
becomes unnecessary and all added tests pass (with updates, as now clang-format
respects the style configuration for spaces around the `&` in the test
examples).
I've removed these additions and added regression tests for the cases above.

Reviewers: AndWass, MyDeveloperDay

Reviewed By: MyDeveloperDay

Subscribers: cfe-commits

Tags: #clang, #clang-format

Differential Revision: https://reviews.llvm.org/D68695
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Format/TokenAnnotator.cpp (diff)clang.src/lib/Format/TokenAnnotator.cpp
The file was modified/cfe/trunk/unittests/Format/FormatTest.cpp (diff)clang.src/unittests/Format/FormatTest.cpp
Revision 374171 by rksimon:
Fix Wdocumentation unknown parameter warning. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm-c/DebugInfo.h (diff)llvm.src/include/llvm-c/DebugInfo.h
Revision 374170 by courbet:
[llvm-exegesis] Ensure that ExecutableFunction are aligned.

Summary: Experiments show that this is the alignment we get (for ELF+Linux), but let's ensure that we have it.

Reviewers: gchatelet

Subscribers: tschuett, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68703
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/Assembler.cpp (diff)llvm.src/tools/llvm-exegesis/lib/Assembler.cpp
Revision 374169 by dmgreen:
Add and adjust saturating tests. NFC

This adds some extra testing to the existing [su][add/sub]_sat X86 and AArch64
tests and adds equivalent tests for ARM.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/AArch64/sadd_sat.ll (diff)llvm.src/test/CodeGen/AArch64/sadd_sat.ll
The file was modified/llvm/trunk/test/CodeGen/AArch64/ssub_sat.ll (diff)llvm.src/test/CodeGen/AArch64/ssub_sat.ll
The file was modified/llvm/trunk/test/CodeGen/AArch64/uadd_sat.ll (diff)llvm.src/test/CodeGen/AArch64/uadd_sat.ll
The file was modified/llvm/trunk/test/CodeGen/AArch64/usub_sat.ll (diff)llvm.src/test/CodeGen/AArch64/usub_sat.ll
The file was added/llvm/trunk/test/CodeGen/ARM/sadd_sat.llllvm.src/test/CodeGen/ARM/sadd_sat.ll
The file was added/llvm/trunk/test/CodeGen/ARM/ssub_sat.llllvm.src/test/CodeGen/ARM/ssub_sat.ll
The file was added/llvm/trunk/test/CodeGen/ARM/uadd_sat.llllvm.src/test/CodeGen/ARM/uadd_sat.ll
The file was added/llvm/trunk/test/CodeGen/ARM/usub_sat.llllvm.src/test/CodeGen/ARM/usub_sat.ll
The file was modified/llvm/trunk/test/CodeGen/X86/sadd_sat.ll (diff)llvm.src/test/CodeGen/X86/sadd_sat.ll
The file was modified/llvm/trunk/test/CodeGen/X86/ssub_sat.ll (diff)llvm.src/test/CodeGen/X86/ssub_sat.ll
The file was modified/llvm/trunk/test/CodeGen/X86/uadd_sat.ll (diff)llvm.src/test/CodeGen/X86/uadd_sat.ll
The file was modified/llvm/trunk/test/CodeGen/X86/usub_sat.ll (diff)llvm.src/test/CodeGen/X86/usub_sat.ll
Revision 374168 by kadircet:
[clangd] Make sure ReplyCallbacks are destroyed before RequestCancelersMutex

Summary:
After rL374163, replycallbacks might have a cancellable context, which
will try to access RequestCancellers on destruction. See
http://45.33.8.238/mac/1245/step_7.txt for a sample failure.

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits, thakis

Tags: #clang

Differential Revision: https://reviews.llvm.org/D68702
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/ClangdLSPServer.cpp (diff)clang-tools-extra.src/clangd/ClangdLSPServer.cpp
Revision 374167 by hliao:
[clang-offload-bundler] Support `.cui` and `.d`.

Reviewers: tra, yaxunl

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D68663
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/tools/clang-offload-bundler/ClangOffloadBundler.cpp (diff)clang.src/tools/clang-offload-bundler/ClangOffloadBundler.cpp
Revision 374166 by sjoerdmeijer:
[LV] Emitting SCEV checks with OptForSize

When optimising for size and SCEV runtime checks need to be emitted to check
overflow behaviour, the loop vectorizer can run in this assert:

  LoopVectorize.cpp:2699: void llvm::InnerLoopVectorizer::emitSCEVChecks(
  llvm::Loop *, llvm::BasicBlock *): Assertion `!BB->getParent()->hasOptSize()
  && "Cannot SCEV check stride or overflow when opt

We should not generate predicates while optimising for size because
code will be generated for predicates such as these SCEV overflow runtime
checks.

This should fix PR43371.

Differential Revision: https://reviews.llvm.org/D68082
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp (diff)llvm.src/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
The file was modified/llvm/trunk/test/Transforms/LoopVectorize/optsize.ll (diff)llvm.src/test/Transforms/LoopVectorize/optsize.ll
Revision 374165 by atanasyan:
[mips] Rename local variable. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp (diff)llvm.src/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
Revision 374164 by atanasyan:
[mips] Split expandLoadImmReal into multiple methods. NFC

The `expandLoadImmReal` handles four different and almost non-overlapping
cases: loading a "single" float immediate into a GPR, loading a "single"
float immediate into a FPR, and the same couple for a "double" float
immediate.

It's better to move each `else if` branch into separate methods.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp (diff)llvm.src/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
Revision 374163 by kadircet:
[clangd] Propagate context into reply handlers
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/ClangdLSPServer.h (diff)clang-tools-extra.src/clangd/ClangdLSPServer.h
Revision 374162 by courbet:
[llvm-exegesis] Fix r374158

Some bots complain about missing 'class':

LlvmState.h:70:40: error: declaration of ‘std::unique_ptr<const llvm::TargetMachine> llvm::exegesis::LLVMState::TargetMachine’ [-fpermissive]
   std::unique_ptr<const TargetMachine> TargetMachine;
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/LlvmState.cpp (diff)llvm.src/tools/llvm-exegesis/lib/LlvmState.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/LlvmState.h (diff)llvm.src/tools/llvm-exegesis/lib/LlvmState.h
Revision 374161 by rksimon:
[CostModel][X86] Add tests for insertelement to non-immediate vector element indices
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Analysis/CostModel/X86/vector-insert.ll (diff)llvm.src/test/Analysis/CostModel/X86/vector-insert.ll
Revision 374160 by rksimon:
[CostModel][X86] Add tests for extractelement from non-immediate vector element indices
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Analysis/CostModel/X86/vector-extract.ll (diff)llvm.src/test/Analysis/CostModel/X86/vector-extract.ll
Revision 374159 by dmgreen:
[ARM] Add saturating arithmetic tests for MVE. NFC
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/Thumb2/mve-saturating-arith.llllvm.src/test/CodeGen/Thumb2/mve-saturating-arith.ll
Revision 374158 by courbet:
[llvm-exegesis][NFC] Remove extra `llvm::` qualifications.

Summary: Second patch: in the lib.

Reviewers: gchatelet

Subscribers: nemanjai, tschuett, MaskRay, mgrang, jsji, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68692
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/AArch64/Target.cpp (diff)llvm.src/tools/llvm-exegesis/lib/AArch64/Target.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/Analysis.cpp (diff)llvm.src/tools/llvm-exegesis/lib/Analysis.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/Analysis.h (diff)llvm.src/tools/llvm-exegesis/lib/Analysis.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/Assembler.cpp (diff)llvm.src/tools/llvm-exegesis/lib/Assembler.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/Assembler.h (diff)llvm.src/tools/llvm-exegesis/lib/Assembler.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/BenchmarkResult.cpp (diff)llvm.src/tools/llvm-exegesis/lib/BenchmarkResult.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/BenchmarkResult.h (diff)llvm.src/tools/llvm-exegesis/lib/BenchmarkResult.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/BenchmarkRunner.cpp (diff)llvm.src/tools/llvm-exegesis/lib/BenchmarkRunner.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/BenchmarkRunner.h (diff)llvm.src/tools/llvm-exegesis/lib/BenchmarkRunner.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/Clustering.cpp (diff)llvm.src/tools/llvm-exegesis/lib/Clustering.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/Clustering.h (diff)llvm.src/tools/llvm-exegesis/lib/Clustering.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/CodeTemplate.cpp (diff)llvm.src/tools/llvm-exegesis/lib/CodeTemplate.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/CodeTemplate.h (diff)llvm.src/tools/llvm-exegesis/lib/CodeTemplate.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/Latency.cpp (diff)llvm.src/tools/llvm-exegesis/lib/Latency.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/Latency.h (diff)llvm.src/tools/llvm-exegesis/lib/Latency.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/LlvmState.cpp (diff)llvm.src/tools/llvm-exegesis/lib/LlvmState.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/LlvmState.h (diff)llvm.src/tools/llvm-exegesis/lib/LlvmState.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/MCInstrDescView.cpp (diff)llvm.src/tools/llvm-exegesis/lib/MCInstrDescView.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/MCInstrDescView.h (diff)llvm.src/tools/llvm-exegesis/lib/MCInstrDescView.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/PerfHelper.cpp (diff)llvm.src/tools/llvm-exegesis/lib/PerfHelper.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/PerfHelper.h (diff)llvm.src/tools/llvm-exegesis/lib/PerfHelper.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/PowerPC/Target.cpp (diff)llvm.src/tools/llvm-exegesis/lib/PowerPC/Target.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/RegisterAliasing.cpp (diff)llvm.src/tools/llvm-exegesis/lib/RegisterAliasing.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/RegisterAliasing.h (diff)llvm.src/tools/llvm-exegesis/lib/RegisterAliasing.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/RegisterValue.cpp (diff)llvm.src/tools/llvm-exegesis/lib/RegisterValue.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/RegisterValue.h (diff)llvm.src/tools/llvm-exegesis/lib/RegisterValue.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/SchedClassResolution.cpp (diff)llvm.src/tools/llvm-exegesis/lib/SchedClassResolution.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/SchedClassResolution.h (diff)llvm.src/tools/llvm-exegesis/lib/SchedClassResolution.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/SnippetGenerator.cpp (diff)llvm.src/tools/llvm-exegesis/lib/SnippetGenerator.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/SnippetGenerator.h (diff)llvm.src/tools/llvm-exegesis/lib/SnippetGenerator.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/SnippetRepetitor.cpp (diff)llvm.src/tools/llvm-exegesis/lib/SnippetRepetitor.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/Target.cpp (diff)llvm.src/tools/llvm-exegesis/lib/Target.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/Target.h (diff)llvm.src/tools/llvm-exegesis/lib/Target.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/Uops.cpp (diff)llvm.src/tools/llvm-exegesis/lib/Uops.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/Uops.h (diff)llvm.src/tools/llvm-exegesis/lib/Uops.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/X86/Target.cpp (diff)llvm.src/tools/llvm-exegesis/lib/X86/Target.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/llvm-exegesis.cpp (diff)llvm.src/tools/llvm-exegesis/llvm-exegesis.cpp
Revision 374157 by courbet:
[llvm-exegesis][NFC] Remove extra `llvm::` qualifications.

Summary: First patch: in unit tests.

Subscribers: nemanjai, tschuett, MaskRay, jsji, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68687
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/unittests/tools/llvm-exegesis/AArch64/TargetTest.cpp (diff)llvm.src/unittests/tools/llvm-exegesis/AArch64/TargetTest.cpp
The file was modified/llvm/trunk/unittests/tools/llvm-exegesis/ARM/AssemblerTest.cpp (diff)llvm.src/unittests/tools/llvm-exegesis/ARM/AssemblerTest.cpp
The file was modified/llvm/trunk/unittests/tools/llvm-exegesis/Common/AssemblerUtils.h (diff)llvm.src/unittests/tools/llvm-exegesis/Common/AssemblerUtils.h
The file was modified/llvm/trunk/unittests/tools/llvm-exegesis/PerfHelperTest.cpp (diff)llvm.src/unittests/tools/llvm-exegesis/PerfHelperTest.cpp
The file was modified/llvm/trunk/unittests/tools/llvm-exegesis/PowerPC/AnalysisTest.cpp (diff)llvm.src/unittests/tools/llvm-exegesis/PowerPC/AnalysisTest.cpp
The file was modified/llvm/trunk/unittests/tools/llvm-exegesis/PowerPC/TargetTest.cpp (diff)llvm.src/unittests/tools/llvm-exegesis/PowerPC/TargetTest.cpp
The file was modified/llvm/trunk/unittests/tools/llvm-exegesis/RegisterValueTest.cpp (diff)llvm.src/unittests/tools/llvm-exegesis/RegisterValueTest.cpp
The file was modified/llvm/trunk/unittests/tools/llvm-exegesis/X86/AssemblerTest.cpp (diff)llvm.src/unittests/tools/llvm-exegesis/X86/AssemblerTest.cpp
The file was modified/llvm/trunk/unittests/tools/llvm-exegesis/X86/BenchmarkResultTest.cpp (diff)llvm.src/unittests/tools/llvm-exegesis/X86/BenchmarkResultTest.cpp
The file was modified/llvm/trunk/unittests/tools/llvm-exegesis/X86/RegisterAliasingTest.cpp (diff)llvm.src/unittests/tools/llvm-exegesis/X86/RegisterAliasingTest.cpp
The file was modified/llvm/trunk/unittests/tools/llvm-exegesis/X86/SchedClassResolutionTest.cpp (diff)llvm.src/unittests/tools/llvm-exegesis/X86/SchedClassResolutionTest.cpp
The file was modified/llvm/trunk/unittests/tools/llvm-exegesis/X86/SnippetGeneratorTest.cpp (diff)llvm.src/unittests/tools/llvm-exegesis/X86/SnippetGeneratorTest.cpp
The file was modified/llvm/trunk/unittests/tools/llvm-exegesis/X86/TargetTest.cpp (diff)llvm.src/unittests/tools/llvm-exegesis/X86/TargetTest.cpp
Revision 374154 by atanasyan:
[mips] Set default float ABI to "soft" on FreeBSD

Initial patch by Kyle Evans.

Fix PR43596
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/Arch/Mips.cpp (diff)clang.src/lib/Driver/ToolChains/Arch/Mips.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/Arch/Mips.h (diff)clang.src/lib/Driver/ToolChains/Arch/Mips.h
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cpp (diff)clang.src/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/Gnu.cpp (diff)clang.src/lib/Driver/ToolChains/Gnu.cpp
The file was modified/cfe/trunk/test/Driver/mips-float.c (diff)clang.src/test/Driver/mips-float.c
Revision 374153 by nikolaprica:
[DebugInfo] Enable call site debug info for ARM and AArch64

ARM and AArch64 SelectionDAG support for tacking parameter forwarding
register is implemented so we can allow clang invocations for those two
targets.
Beside that restrict debug entry value support to be emitted for
LimitedDebugInfo info and FullDebugInfo. Other types of debug info do
not have functions nor variables debug info.

Reviewers: aprantl, probinson, dstenb, vsk

Reviewed By: vsk

Differential Revision: https://reviews.llvm.org/D67004
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 modified/cfe/trunk/lib/Frontend/CompilerInvocation.cpp (diff)clang.src/lib/Frontend/CompilerInvocation.cpp
The file was modified/cfe/trunk/test/CodeGen/debug-info-param-modification.c (diff)clang.src/test/CodeGen/debug-info-param-modification.c
Revision 374152 by ibiryukov:
[Sema] Emit diagnostics for uncorrected delayed typos at the end of TU

Summary:
Instead of asserting all typos are corrected in the sema destructor.

The sema destructor is not run in the common case of running the compiler
with the -disable-free cc1 flag (which is the default in the driver).

Having this assertion led to crashes in libclang and clangd, which are not
reproducible when running the compiler.

Asserting at the end of the TU could be an option, but finding all
missing typo correction cases is hard and having worse diagnostics instead
of a failing assertion is a better trade-off.

For more discussion on this, see:
https://lists.llvm.org/pipermail/cfe-dev/2019-July/062872.html

Reviewers: sammccall, rsmith

Reviewed By: rsmith

Subscribers: usaxena95, dgoldman, jkorous, vsapsai, rnk, kadircet, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64799
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/Sema.cpp (diff)clang.src/lib/Sema/Sema.cpp
The file was modified/cfe/trunk/test/SemaObjC/typo-correction-subscript.m (diff)clang.src/test/SemaObjC/typo-correction-subscript.m
Revision 374151 by ibiryukov:
Revert r374006: Reland 'Add VFS support for sanitizers' blacklist'

Also revert follow-up changes to the test.
Reason: the patch breaks our internal clang-tidy integration.

It's also unclear why we should use getRealPath instead of plumbing the
VFS to SanitizerBlacklist, see original commit thread of cfe-commits for
a discussion.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ASTContext.cpp (diff)clang.src/lib/AST/ASTContext.cpp
The file was removed/cfe/trunk/test/CodeGen/Inputs/sanitizer-blacklist-vfsoverlay.yamlclang.src/test/CodeGen/Inputs/sanitizer-blacklist-vfsoverlay.yaml
The file was removed/cfe/trunk/test/CodeGen/ubsan-blacklist-vfs.cclang.src/test/CodeGen/ubsan-blacklist-vfs.c
Revision 374150 by jamesm:
[TableGen] Fix crash when using HwModes in CodeEmitterGen

When an instruction has an encoding definition for only a subset of
the available HwModes, ensure we just avoid generating an encoding
rather than crash.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/TableGen/HwModeEncodeDecode.td (diff)llvm.src/test/TableGen/HwModeEncodeDecode.td
The file was modified/llvm/trunk/utils/TableGen/CodeEmitterGen.cpp (diff)llvm.src/utils/TableGen/CodeEmitterGen.cpp
Revision 374149 by courbet:
[llvm-exegesis] Add missing std::move in rL374146.

This was breaking some bots:

/home/buildbots/ppc64le-clang-lnt-test/clang-ppc64le-lnt/llvm/include/llvm/Support/Error.h:483:5:   required from ‘llvm::Expected<T>::Expected(OtherT&&, typename std::enable_if<std::is_convertible<_Rep2, _Rep>::value>::type*) [with OtherT = std::vector<llvm::exegesis::CodeTemplate>&; T = std::vector<llvm::exegesis::CodeTemplate>; typename std::enable_if<std::is_convertible<_Rep2, _Rep>::value>::type = void]’
/home/buildbots/ppc64le-clang-lnt-test/clang-ppc64le-lnt/llvm/tools/llvm-exegesis/lib/X86/Target.cpp:238:20:   required from here
/usr/include/c++/6/bits/stl_construct.h:75:7: error: use of deleted function ‘llvm::exegesis::CodeTemplate::CodeTemplate(const llvm::exegesis::CodeTemplate&)’
     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/X86/Target.cpp (diff)llvm.src/tools/llvm-exegesis/lib/X86/Target.cpp
Revision 374148 by hans:
Unify the two CRC implementations

David added the JamCRC implementation in r246590. More recently, Eugene
added a CRC-32 implementation in r357901, which falls back to zlib's
crc32 function if present.

These checksums are essentially the same, so having multiple
implementations seems unnecessary. This replaces the CRC-32
implementation with the simpler one from JamCRC, and implements the
JamCRC interface in terms of CRC-32 since this means it can use zlib's
implementation when available, saving a few bytes and potentially making
it faster.

JamCRC took an ArrayRef<char> argument, and CRC-32 took a StringRef.
This patch changes it to ArrayRef<uint8_t> which I think is the best
choice, and simplifies a few of the callers nicely.

Differential revision: https://reviews.llvm.org/D68570
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/MicrosoftMangle.cpp (diff)clang.src/lib/AST/MicrosoftMangle.cpp
The file was modified/lld/trunk/COFF/PDB.cpp (diff)N/A
The file was modified/lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp (diff)N/A
The file was modified/llvm/trunk/include/llvm/Support/CRC.h (diff)llvm.src/include/llvm/Support/CRC.h
The file was removed/llvm/trunk/include/llvm/Support/JamCRC.hllvm.src/include/llvm/Support/JamCRC.h
The file was modified/llvm/trunk/lib/DebugInfo/PDB/Native/Hash.cpp (diff)llvm.src/lib/DebugInfo/PDB/Native/Hash.cpp
The file was modified/llvm/trunk/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp (diff)llvm.src/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
The file was modified/llvm/trunk/lib/DebugInfo/PDB/Native/TpiHashing.cpp (diff)llvm.src/lib/DebugInfo/PDB/Native/TpiHashing.cpp
The file was modified/llvm/trunk/lib/DebugInfo/Symbolize/Symbolize.cpp (diff)llvm.src/lib/DebugInfo/Symbolize/Symbolize.cpp
The file was modified/llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp (diff)llvm.src/lib/MC/WinCOFFObjectWriter.cpp
The file was modified/llvm/trunk/lib/Support/CMakeLists.txt (diff)llvm.src/lib/Support/CMakeLists.txt
The file was modified/llvm/trunk/lib/Support/CRC.cpp (diff)llvm.src/lib/Support/CRC.cpp
The file was removed/llvm/trunk/lib/Support/JamCRC.cppllvm.src/lib/Support/JamCRC.cpp
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/PGOInstrumentation.cpp (diff)llvm.src/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
The file was modified/llvm/trunk/tools/llvm-objcopy/COFF/COFFObjcopy.cpp (diff)llvm.src/tools/llvm-objcopy/COFF/COFFObjcopy.cpp
The file was modified/llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp (diff)llvm.src/tools/llvm-objcopy/CopyConfig.cpp
The file was modified/llvm/trunk/unittests/Support/CRCTest.cpp (diff)llvm.src/unittests/Support/CRCTest.cpp
The file was modified/llvm/trunk/utils/gn/secondary/llvm/lib/Support/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/lib/Support/BUILD.gn
Revision 374147 by courbet:
[llvm-exegesis][NFC] Fix rL374146.

Remove extra semicolon: Target.cpp:187:2: warning: extra ‘;’ [-Wpedantic]
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/X86/Target.cpp (diff)llvm.src/tools/llvm-exegesis/lib/X86/Target.cpp
Revision 374146 by courbet:
[llvm-exegesis] Explore LEA addressing modes.

Summary:
This will help for PR32326.

This shows the well-known issue with `RBP` and `R13` as base registers.

Reviewers: gchatelet

Subscribers: tschuett, llvm-commits, RKSimon, andreadb

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68646
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/llvm-exegesis/X86/latency-LEA64r.sllvm.src/test/tools/llvm-exegesis/X86/latency-LEA64r.s
The file was added/llvm/trunk/test/tools/llvm-exegesis/X86/uops-LEA64r.sllvm.src/test/tools/llvm-exegesis/X86/uops-LEA64r.s
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/RegisterAliasing.h (diff)llvm.src/tools/llvm-exegesis/lib/RegisterAliasing.h
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/Uops.cpp (diff)llvm.src/tools/llvm-exegesis/lib/Uops.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/X86/Target.cpp (diff)llvm.src/tools/llvm-exegesis/lib/X86/Target.cpp
Revision 374144 by jmorse:
Revert r374139, "[dsymutil] Fix handling of common symbols in multiple object files."

The added test files ("com", "com1.o", "com2.o") are reserved names on
Windows, and makes 'git checkout' fail with a filesystem error.
Change TypePath in RepositoryPath in Workspace
The file was removed/llvm/trunk/test/tools/dsymutil/Inputs/privatellvm.src/test/tools/dsymutil/Inputs/private
The file was removed/llvm/trunk/test/tools/dsymutil/X86/common-sym-multi.testllvm.src/test/tools/dsymutil/X86/common-sym-multi.test
The file was modified/llvm/trunk/tools/dsymutil/MachODebugMapParser.cpp (diff)llvm.src/tools/dsymutil/MachODebugMapParser.cpp
Revision 374143 by courbet:
[llvm-exegesis][NFC] Remove unecessary `using llvm::` directives.

We've been in namespace llvm for at least a year.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/unittests/tools/llvm-exegesis/AArch64/TargetTest.cpp (diff)llvm.src/unittests/tools/llvm-exegesis/AArch64/TargetTest.cpp
The file was modified/llvm/trunk/unittests/tools/llvm-exegesis/X86/AssemblerTest.cpp (diff)llvm.src/unittests/tools/llvm-exegesis/X86/AssemblerTest.cpp
The file was modified/llvm/trunk/unittests/tools/llvm-exegesis/X86/TargetTest.cpp (diff)llvm.src/unittests/tools/llvm-exegesis/X86/TargetTest.cpp