FailedChanges

Summary

  1. Fix some tests I broke in r354190 This was breaking on MSVC, since long double and double have the same semantics there.
  2. [libFuzzer] make len_control less agressive: set the initial max len to the length of the largest seed. This was the original intent, but... Now, with a test, to ensure it stays this way
  3. [Sema] Diagnose floating point conversions based on target semantics ...instead of just comparing rank. Also, fix a bad warning about _Float16, since its declared out of order in BuiltinTypes.def, meaning comparing rank using BuiltinType::getKind() is incorrect. Differential revision: https://reviews.llvm.org/D58254
  4. [ObjC generics] Fix applying `__kindof` to the type parameter. Fixes the warning about incompatible pointer types on assigning to a subclass of type argument an expression of type `__kindof TypeParam`. We already have a mechanism in `ASTContext::canAssignObjCInterfaces` that handles `ObjCObjectType` with `__kindof`. But it wasn't triggered because during type substitution `__kindof TypeParam` was represented as `AttributedType` with attribute `ObjCKindOf` and equivalent type `TypeArg`. For assignment type checking we use canonical types so attributed type was desugared and the attribute was ignored. The fix is in checking transformed `AttributedType` and pushing `__kindof` down into `ObjCObjectType` when necessary. rdar://problem/38514910 Reviewers: ahatanak, erik.pilkington, doug.gregor Reviewed By: doug.gregor Subscribers: jkorous, dexonsmith, manmanren, jordan_rose, doug.gregor, cfe-commits Differential Revision: https://reviews.llvm.org/D57076
  5. [lit] Remove LitTestCase From the docs: `class LitTestCase(unittest.TestCase)` LitTestCase is an adaptor for providing a 'unittest' compatible interface to 'lit' tests so that we can run lit tests with standard python test runners. It does not seem to be used anywhere. Differential Revision: https://reviews.llvm.org/D58264
  6. [lit][NFC] Cleanup lit worker process handling Move code that is executed on worker process to separate file. This makes the use of the pickled arguments stored in global variables in the worker a bit clearer. (Still not pretty though.) Extract handling of parallelism groups to it's own function. Use BoundedSemaphore instead of Semaphore. BoundedSemaphore raises for unmatched release() calls. Cleanup imports. Differential Revision: https://reviews.llvm.org/D58196
  7. [libFuzzer] fork mode: try harder to cleanup after itself
  8. clang-format with UseTab: Always sometimes doesn't insert the right amount of tabs. Trailing comments are not always aligned properly when UseTab is set to Always. Consider: int a; // x int bbbbbbbb; // x With .clang-format: --- Language: Cpp BasedOnStyle: LLVM UseTab: Always ... The trailing comments of this code block should be aligned, but aren't To align the first trailing comment it needs to insert 8 spaces. This should be one tab plus six spaces. It skips the logic of the first partial tab in FirstTabWidth (=2) + Style.TabWidth (=8) <= Spaces (=8) and only inserts one tab. Proposed fix and test is attached. Patch by Hylke Kleve. Differential revision: https://reviews.llvm.org/D57655
  9. [EarlyCSE & MSSA] Cap the clobbering calls in EarlyCSE. Summary: Unlimitted number of calls to getClobberingAccess can lead to high compile times in pathological cases. Limitting getClobberingAccess to a fairly high number. Can be adjusted based on users/need. Note: this is the only user of MemorySSA currently enabled by default. The same handling exists in LICM (disabled atm). As MemorySSA gains more users, this logic of capping will need to move inside MemorySSA. Reviewers: george.burgess.iv Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D58248
  10. [ObjC] For type substitution in generics use a regular recursive type visitor. Switch to the inheritance-based visitor from the lambda-based visitor to allow both preorder and postorder customizations during type transformation. NFC intended. Reviewers: ahatanak, erik.pilkington Reviewed By: erik.pilkington Subscribers: jkorous, dexonsmith, cfe-commits Differential Revision: https://reviews.llvm.org/D57075
  11. [Sanitizer] iOS: Pull up parallelism_group handling into common.lit.config Serial execution on iOS devices is not specific to sanitizers. We want to throttle all on-device tests. Pull the setting of the parallelism_group up into the common lit configuration file. Rename `darwin-ios-device-sanitizer` to `ios-device`. This group is not specific to sanitizers and (theoretically) independent from the host OS. Note that we don't support running unit tests on-device (there are no configurations generated for that). If that ever changes, we also need this configuration in `unittests/lit.common.unit.cfg`. Reviewers: delcypher Differential Revision: https://reviews.llvm.org/D58209
  12. [X86] Don't set exception mask bits when modifying FPCW to change rounding mode for fp->int conversion When we need to do an fp->int conversion using x87 instructions, we need to temporarily change the rounding mode to 0b11 and perform a store. To do this we save the old value of the fpcw to the stack, then set the fpcw to 0xc7f, do the store, then restore fpcw. But the 0xc7f value forces the exception mask bits 1. While this is what they would be in the default FP environment, as we move to support changing the FP environments, we shouldn't make this assumption. This patch changes the code to explicitly OR 0xc00 with the old value so that only the rounding mode is changed. Unfortunately, this requires two stack temporaries instead of one. One to hold the old value and one to hold the new value. Without two stack temporaries we would need an additional GPR. We already need one to do the OR operation in. This is similar to what gcc and icc do for this operation. Though they are both better at reusing the stack temporaries when there are multiple truncates in a function(or at least in a basic block) Differential Revision: https://reviews.llvm.org/D57788
  13. Fix implementation of [temp.local]p4. When a template-name is looked up, we need to give injected-class-name declarations of class templates special treatment, as they denote a template rather than a type. Previously we achieved this by applying a filter to the lookup results after completing name lookup, but that is incorrect in various ways, not least of which is that it lost all information about access and how members were named, and the filtering caused us to generally lose all ambiguity errors between templates and non-templates. We now preserve the lookup results exactly, and the few places that need to map from a declaration found by name lookup into a declaration of a template do so explicitly. Deduplication of repeated lookup results of the same injected-class-name declaration is done by name lookup instead of after the fact. This reinstates r354091, which was previously reverted in r354097 because it exposed bugs in lldb and compiler-rt. Those bugs were fixed in r354173 and r354174 respectively.
  14. [libFuzzer] form mode: add -ignore_crashes flag, honor the max_total_time flag, print the number of ooms/timeouts/crashes, fix a typo
  15. Fix invalid code that Clang trunk will soon diagnose. There is an ambiguity between ::SizeClassMap (the typedef declared near the start of this file) and __sanitizer::SizeClassMap (found by the 'using namespace __sanitizer;' near the start of this file). Historically a Clang bug has meant that the error was not diagnosed, but soon Clang will start diagnosing it. Explicitly qualify this use of SizeClassMap so that it finds __sanitizer::SizeClassMap rather than being ill-formed due to ambiguity.
  16. [InstCombine] Address a couple stylistic issues pointed out by reviewer [NFC] Better addressing comments from https://reviews.llvm.org/D58290.
  17. [InstCombine] Convert atomicrmws to xchg or store where legal Implement two more transforms of atomicrmw: 1) We can convert an atomicrmw which produces a known value in memory into an xchg instead. 2) We can convert an atomicrmw xchg w/o users into a store for some orderings. Differential Revision: https://reviews.llvm.org/D58290
  18. Revert r354075 "[clang][FileManager] fillRealPathName even if we aren't opening the file" The new test doesn't pass on Windows.
  19. [docs] Document LLVM_ENABLE_IDE Use some of the wording and the motivating example from r344555. The lack of documentation was pointed out by Roman Lebedev. Differential Revision: https://reviews.llvm.org/D58286
  20. [Driver] Default all Android ARM targets to NEON. Summary: There are an insignificant number of ARM Android devices that don't support NEON. Default to using NEON since that will improve performance on the majority of devices. Users that need to target non-NEON devices can still explicitly disable NEON. Reviewers: srhines, pirama, kristof.beyls Reviewed By: pirama Subscribers: efriedma, javed.absar, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58153
  21. Relax assertion to account for private framework modules, too. rdar://problem/48116069
  22. [ObjC] Fix non-canonical types preventing type arguments substitution. `QualType::substObjCTypeArgs` doesn't go past non-canonical types and as the result misses some of the substitutions like `ObjCTypeParamType`. Update `SimpleTransformVisitor` to traverse past the type sugar. Reviewers: ahatanak, erik.pilkington Reviewed By: erik.pilkington Subscribers: jkorous, dexonsmith, cfe-commits Differential Revision: https://reviews.llvm.org/D57270
  23. [X86] Fix LowerAsmOutputForConstraint. Summary: Update Flag when generating cc output. Fixes PR40737. Reviewers: rnk, nickdesaulniers, craig.topper, spatel Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58283
  24. [MSVC] Recognize `static_assert` keyword in C and C++98 Summary: The main effect is that clang now accepts the following conforming C11 code with MSVC headers: #include <assert.h> static_assert(1, "true"); This is a non-conforming extension (the keyword is outside the implementer's namespace), so it is placed under -fms-compatibility instead of -fms-extensions like most MSVC-specific keyword extensions. Normally, in C11, the compiler is supposed to provide the _Static_assert keyword, and assert.h should define static_assert to _Static_assert. However, that is not what MSVC does, and MSVC doesn't even provide _Static_assert. This also has the less important side effect of enabling static_assert in C++98 mode with -fms-compatibility. It's exceptionally difficult to use modern MSVC headers without C++14 even, so this is relatively unimportant. Fixes PR26672 Patch by Andrey Bokhanko! Reviewers: rsmith, thakis Subscribers: cfe-commits, STL_MSFT Differential Revision: https://reviews.llvm.org/D17444
  25. [X86] Move all the SSE legality checks out of FP_TO_INTHelper and up to LowerFP_TO_INT. NFCI These checks aren't needed on the call to FP_TO_INTHelper from the type legalizer for splitting i64. We always want to use X87 FIST/FISTT to memory there. Moving up the SSE checks will allow this routine to focus on what it cares about and makes its return semantics cleaner.
  26. Recommit "[SystemZ] Do not emit VEXTEND or VROUND nodes without vector support." It seems there were some problem with using a .mir test. For some reason doing '-stop-before=codegenprepare' and then '-start-before=codegenprepare' on the output .mir file results in the NoVRegs Property after instruction selection. Recommitting the same test as an .ll file instead.
  27. [CodeExtractor] Do not lift lifetime.end markers for region inputs If a lifetime.end marker occurs along one path through the extraction region, but not another, then it's still incorrect to lift the marker, because there is some path through the extracted function which would ordinarily not reach the marker. If the call to the extracted function is in a loop, unrolling can cause inputs to the function to become optimized out as undef after the first iteration. To prevent incorrect stack slot merging in the calling function, it should be sufficient to lift lifetime.start markers for region inputs. I've tested this theory out by doing a stage2 check-all with randomized splitting enabled. This is a follow-up to r353973, and there's additional context for this change in https://reviews.llvm.org/D57834. rdar://47896986 Differential Revision: https://reviews.llvm.org/D58253
  28. [HotColdSplit] Schedule splitting late to fix perf regression With or without PGO data applied, splitting early in the pipeline (either before the inliner or shortly after it) regresses performance across SPEC variants. The cause appears to be that splitting hides context for subsequent optimizations. Schedule splitting late again, in effect reversing r352080, which scheduled the splitting pass early for code size benefits (documented in https://reviews.llvm.org/D57082). Differential Revision: https://reviews.llvm.org/D58258
  29. Fix unsymbolized stack history printing. Summary: When symbols are unavailable, the current code prints sp: ... pc: ... (null) (null) instead of module name + offset. Change the output to include module name and offset, and also to match the regular sanitizer stack trace format so that it is recognized by symbolize.py out of the box. Reviewers: kcc, pcc Subscribers: kubamracek, jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58267
  30. Runtime flags for malloc bisection. Reviewers: kcc, pcc Subscribers: kubamracek, mgorny, jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58162
  31. Fix false positive when tag_in_malloc=0,tag_in_free=1. Summary: With tag_in_free=1, malloc() can not assume that the memory is untagged, and needs to retag is to 0. Reviewers: pcc, kcc Subscribers: kubamracek, jfb, jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58158
  32. [MCA] Improved code comment. NFC
  33. Revert "[compiler-rt] Cleanup usage of C++ ABI library" This reverts r354132 because it breaks sanitizer-x86_64-linux: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/19915
  34. Fix 80-column limit in SimplifyDemandedBits/SimplifyDemandedVectorElts. NFCI.
  35. [Sema][NFC] SequenceChecker: Add tests for references/members, and prepare for the C++17 tests Add some tests for unsequenced operations with members and references. For now most of it is unhandled but it shows what work needs to be done. Also merge the tests for the C++17 sequencing rules in warn-unsequenced.cpp since we want to make sure that the appropriate warnings are still present in C++17 without duplicating the whole content of warn-unsequenced.cpp.
  36. [MCA][LSUnit] Return the ID of the dependent memory operation from method isReady(). NFCI This is yet another change in preparation for a fix for PR37494.
  37. Variable auto-init of blocks capturing self after init bugfix Summary: Blocks that capture themselves (and escape) after initialization currently codegen wrong because this: bool capturedByInit = Init && emission.IsEscapingByRef && isCapturedBy(D, Init); Address Loc = capturedByInit ? emission.Addr : emission.getObjectAddress(*this); Already adjusts Loc from thr alloca to a GEP. This code: if (emission.IsEscapingByRef) Loc = emitBlockByrefAddress(Loc, &D, /*follow=*/false); Was trying to do the same adjustment, and a GEP on a GEP (returning an int) triggers an assertion. <rdar://problem/47943027> Reviewers: ahatanak Subscribers: jkorous, dexonsmith, cfe-commits, rjmccall Tags: #clang Differential Revision: https://reviews.llvm.org/D58218
  38. [Tests] Demonstrate more missing atomicrmw transforms
  39. [InstCombine] fix crash while trying to narrow a binop of shuffles (PR40734) https://bugs.llvm.org/show_bug.cgi?id=40734
  40. Revert r354137 - OptionalStorage implementation for trivial type, take III This still fails on some random platform, and I fail to reproduce the issue.
Revision 354192 by epilk:
Fix some tests I broke in r354190

This was breaking on MSVC, since long double and double have the same
semantics there.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Misc/warn-in-system-macro-def.c (diff)clang.src/test/Misc/warn-in-system-macro-def.c
The file was modified/cfe/trunk/test/Sema/warn-double-promotion.c (diff)clang.src/test/Sema/warn-double-promotion.c
Revision 354191 by kcc:
[libFuzzer] make len_control less agressive: set the initial max len to the length of the largest seed. This was the original intent, but... Now, with a test, to ensure it stays this way
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
The file was added/compiler-rt/trunk/test/fuzzer/len_control.testcompiler-rt.src/test/fuzzer/len_control.test
Revision 354190 by epilk:
[Sema] Diagnose floating point conversions based on target semantics

...instead of just comparing rank. Also, fix a bad warning about
_Float16, since its declared out of order in BuiltinTypes.def,
meaning comparing rank using BuiltinType::getKind() is incorrect.

Differential revision: https://reviews.llvm.org/D58254
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/lib/AST/ASTContext.cpp (diff)clang.src/lib/AST/ASTContext.cpp
The file was modified/cfe/trunk/lib/Sema/SemaChecking.cpp (diff)clang.src/lib/Sema/SemaChecking.cpp
The file was added/cfe/trunk/test/Sema/conversion-target-dep.cclang.src/test/Sema/conversion-target-dep.c
Revision 354189 by vsapsai:
[ObjC generics] Fix applying `__kindof` to the type parameter.

Fixes the warning about incompatible pointer types on assigning to a
subclass of type argument an expression of type `__kindof TypeParam`.

We already have a mechanism in `ASTContext::canAssignObjCInterfaces`
that handles `ObjCObjectType` with `__kindof`. But it wasn't triggered
because during type substitution `__kindof TypeParam` was represented as
`AttributedType` with attribute `ObjCKindOf` and equivalent type
`TypeArg`. For assignment type checking we use canonical types so
attributed type was desugared and the attribute was ignored.

The fix is in checking transformed `AttributedType` and pushing
`__kindof` down into `ObjCObjectType` when necessary.

rdar://problem/38514910

Reviewers: ahatanak, erik.pilkington, doug.gregor

Reviewed By: doug.gregor

Subscribers: jkorous, dexonsmith, manmanren, jordan_rose, doug.gregor, cfe-commits

Differential Revision: https://reviews.llvm.org/D57076
Change TypePath in RepositoryPath in Workspace
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/kindof.m (diff)clang.src/test/SemaObjC/kindof.m
Revision 354188 by yln:
[lit] Remove LitTestCase

From the docs: `class LitTestCase(unittest.TestCase)`
LitTestCase is an adaptor for providing a 'unittest' compatible
interface to 'lit' tests so that we can run lit tests with standard
python test runners.

It does not seem to be used anywhere.

Differential Revision: https://reviews.llvm.org/D58264
Change TypePath in RepositoryPath in Workspace
The file was removed/llvm/trunk/utils/lit/lit/LitTestCase.pyllvm.src/utils/lit/lit/LitTestCase.py
The file was modified/llvm/trunk/utils/lit/lit/discovery.py (diff)llvm.src/utils/lit/lit/discovery.py
The file was modified/llvm/trunk/utils/lit/lit/run.py (diff)llvm.src/utils/lit/lit/run.py
The file was removed/llvm/trunk/utils/lit/tests/Inputs/unittest-adaptorllvm.src/utils/lit/tests/Inputs/unittest-adaptor
The file was removed/llvm/trunk/utils/lit/tests/unittest-adaptor.pyllvm.src/utils/lit/tests/unittest-adaptor.py
Revision 354187 by yln:
[lit][NFC] Cleanup lit worker process handling

Move code that is executed on worker process to separate file. This
makes the use of the pickled arguments stored in global variables in the
worker a bit clearer. (Still not pretty though.)

Extract handling of parallelism groups to it's own function.

Use BoundedSemaphore instead of Semaphore. BoundedSemaphore raises for
unmatched release() calls.

Cleanup imports.

Differential Revision: https://reviews.llvm.org/D58196
Change TypePath in RepositoryPath in Workspace
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/lit/util.py (diff)llvm.src/utils/lit/lit/util.py
The file was added/llvm/trunk/utils/lit/lit/worker.pyllvm.src/utils/lit/lit/worker.py
Revision 354186 by kcc:
[libFuzzer] fork mode: try harder to cleanup after itself
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerFork.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerFork.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerLoop.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerLoop.cpp
The file was added/compiler-rt/trunk/test/fuzzer/fork-sigusr.testcompiler-rt.src/test/fuzzer/fork-sigusr.test
Revision 354183 by alexfh:
clang-format with UseTab: Always sometimes doesn't insert the right amount of tabs.

Trailing comments are not always aligned properly when UseTab is set to Always.

Consider:

int a;        // x
int bbbbbbbb; // x
With .clang-format:

---
Language:        Cpp
BasedOnStyle: LLVM
UseTab: Always
...
The trailing comments of this code block should be aligned, but aren't

To align the first trailing comment it needs to insert 8 spaces. This should be
one tab plus six spaces. It skips the logic of the first partial tab in
FirstTabWidth (=2) + Style.TabWidth (=8) <= Spaces (=8) and only inserts one
tab. Proposed fix and test is attached.

Patch by Hylke Kleve.

Differential revision: https://reviews.llvm.org/D57655
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Format/WhitespaceManager.cpp (diff)clang.src/lib/Format/WhitespaceManager.cpp
The file was modified/cfe/trunk/unittests/Format/FormatTest.cpp (diff)clang.src/unittests/Format/FormatTest.cpp
Revision 354182 by asbirlea:
[EarlyCSE & MSSA] Cap the clobbering calls in EarlyCSE.

Summary:
Unlimitted number of calls to getClobberingAccess can lead to high
compile times in pathological cases.
Limitting getClobberingAccess to a fairly high number. Can be adjusted
based on users/need.
Note: this is the only user of MemorySSA currently enabled by default.
The same handling exists in LICM (disabled atm). As MemorySSA gains more
users, this logic of capping will need to move inside MemorySSA.

Reviewers: george.burgess.iv

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D58248
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/EarlyCSE.cpp (diff)llvm.src/lib/Transforms/Scalar/EarlyCSE.cpp
Revision 354180 by vsapsai:
[ObjC] For type substitution in generics use a regular recursive type visitor.

Switch to the inheritance-based visitor from the lambda-based visitor to
allow both preorder and postorder customizations during type
transformation. NFC intended.

Reviewers: ahatanak, erik.pilkington

Reviewed By: erik.pilkington

Subscribers: jkorous, dexonsmith, cfe-commits

Differential Revision: https://reviews.llvm.org/D57075
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/Type.cpp (diff)clang.src/lib/AST/Type.cpp
Revision 354179 by yln:
[Sanitizer] iOS: Pull up parallelism_group handling into common.lit.config

Serial execution on iOS devices is not specific to sanitizers. We want
to throttle all on-device tests. Pull the setting of the
parallelism_group up into the common lit configuration file.

Rename `darwin-ios-device-sanitizer` to `ios-device`. This group is not
specific to sanitizers and (theoretically) independent from the host OS.

Note that we don't support running unit tests on-device (there are no
configurations generated for that). If that ever changes, we also need
this configuration in `unittests/lit.common.unit.cfg`.

Reviewers: delcypher

Differential Revision: https://reviews.llvm.org/D58209
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/asan/lit.cfg (diff)compiler-rt.src/test/asan/lit.cfg
The file was modified/compiler-rt/trunk/test/fuzzer/lit.cfg (diff)compiler-rt.src/test/fuzzer/lit.cfg
The file was modified/compiler-rt/trunk/test/lit.common.cfg (diff)compiler-rt.src/test/lit.common.cfg
The file was modified/compiler-rt/trunk/test/sanitizer_common/lit.common.cfg (diff)compiler-rt.src/test/sanitizer_common/lit.common.cfg
The file was modified/compiler-rt/trunk/test/tsan/lit.cfg (diff)compiler-rt.src/test/tsan/lit.cfg
The file was modified/compiler-rt/trunk/test/ubsan/lit.common.cfg (diff)compiler-rt.src/test/ubsan/lit.common.cfg
Revision 354178 by ctopper:
[X86] Don't set exception mask bits when modifying FPCW to change rounding mode for fp->int conversion

When we need to do an fp->int conversion using x87 instructions, we need to temporarily change the rounding mode to 0b11 and perform a store. To do this we save the old value of the fpcw to the stack, then set the fpcw to 0xc7f, do the store, then restore fpcw. But the 0xc7f value forces the exception mask bits 1. While this is what they would be in the default FP environment, as we move to support changing the FP environments, we shouldn't make this assumption.

This patch changes the code to explicitly OR 0xc00 with the old value so that only the rounding mode is changed. Unfortunately, this requires two stack temporaries instead of one. One to hold the old value and one to hold the new value. Without two stack temporaries we would need an additional GPR. We already need one to do the OR operation in. This is similar to what gcc and icc do for this operation. Though they are both better at reusing the stack temporaries when there are multiple truncates in a function(or at least in a basic block)

Differential Revision: https://reviews.llvm.org/D57788
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/bswap_tree2.ll (diff)llvm.src/test/CodeGen/X86/bswap_tree2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/fp-cvt.ll (diff)llvm.src/test/CodeGen/X86/fp-cvt.ll
The file was modified/llvm/trunk/test/CodeGen/X86/inline-asm-fpstack.ll (diff)llvm.src/test/CodeGen/X86/inline-asm-fpstack.ll
The file was modified/llvm/trunk/test/CodeGen/X86/pr34080-2.ll (diff)llvm.src/test/CodeGen/X86/pr34080-2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/pr34080.ll (diff)llvm.src/test/CodeGen/X86/pr34080.ll
The file was modified/llvm/trunk/test/CodeGen/X86/pr40529.ll (diff)llvm.src/test/CodeGen/X86/pr40529.ll
The file was modified/llvm/trunk/test/CodeGen/X86/scalar-fp-to-i64.ll (diff)llvm.src/test/CodeGen/X86/scalar-fp-to-i64.ll
The file was modified/llvm/trunk/test/CodeGen/X86/trunc-to-bool.ll (diff)llvm.src/test/CodeGen/X86/trunc-to-bool.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vec_fp_to_int-widen.ll (diff)llvm.src/test/CodeGen/X86/vec_fp_to_int-widen.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vec_fp_to_int.ll (diff)llvm.src/test/CodeGen/X86/vec_fp_to_int.ll
Revision 354176 by rsmith:
Fix implementation of [temp.local]p4.

When a template-name is looked up, we need to give injected-class-name
declarations of class templates special treatment, as they denote a
template rather than a type.

Previously we achieved this by applying a filter to the lookup results
after completing name lookup, but that is incorrect in various ways, not
least of which is that it lost all information about access and how
members were named, and the filtering caused us to generally lose
all ambiguity errors between templates and non-templates.

We now preserve the lookup results exactly, and the few places that need
to map from a declaration found by name lookup into a declaration of a
template do so explicitly. Deduplication of repeated lookup results of
the same injected-class-name declaration is done by name lookup instead
of after the fact.

This reinstates r354091, which was previously reverted in r354097
because it exposed bugs in lldb and compiler-rt. Those bugs were fixed
in r354173 and r354174 respectively.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Sema/Lookup.h (diff)clang.src/include/clang/Sema/Lookup.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/Sema/SemaDecl.cpp (diff)clang.src/lib/Sema/SemaDecl.cpp
The file was modified/cfe/trunk/lib/Sema/SemaDeclCXX.cpp (diff)clang.src/lib/Sema/SemaDeclCXX.cpp
The file was modified/cfe/trunk/lib/Sema/SemaLookup.cpp (diff)clang.src/lib/Sema/SemaLookup.cpp
The file was modified/cfe/trunk/lib/Sema/SemaTemplate.cpp (diff)clang.src/lib/Sema/SemaTemplate.cpp
The file was modified/cfe/trunk/test/CXX/class.access/p4.cpp (diff)clang.src/test/CXX/class.access/p4.cpp
The file was modified/cfe/trunk/test/CXX/temp/temp.decls/temp.friend/p1.cpp (diff)clang.src/test/CXX/temp/temp.decls/temp.friend/p1.cpp
The file was modified/cfe/trunk/test/SemaTemplate/temp.cpp (diff)clang.src/test/SemaTemplate/temp.cpp
Revision 354175 by kcc:
[libFuzzer] form mode: add -ignore_crashes flag, honor the max_total_time flag, print the number of ooms/timeouts/crashes, fix a typo
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerDriver.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerDriver.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerFlags.def (diff)compiler-rt.src/lib/fuzzer/FuzzerFlags.def
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerFork.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerFork.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerIO.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerIO.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerIO.h (diff)compiler-rt.src/lib/fuzzer/FuzzerIO.h
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerIOPosix.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerIOPosix.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerIOWindows.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerIOWindows.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerOptions.h (diff)compiler-rt.src/lib/fuzzer/FuzzerOptions.h
The file was modified/compiler-rt/trunk/test/fuzzer/fork.test (diff)compiler-rt.src/test/fuzzer/fork.test
Revision 354174 by rsmith:
Fix invalid code that Clang trunk will soon diagnose.

There is an ambiguity between ::SizeClassMap (the typedef declared near
the start of this file) and __sanitizer::SizeClassMap (found by the
'using namespace __sanitizer;' near the start of this file).

Historically a Clang bug has meant that the error was not diagnosed, but
soon Clang will start diagnosing it. Explicitly qualify this use of
SizeClassMap so that it finds __sanitizer::SizeClassMap rather than
being ill-formed due to ambiguity.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/sanitizer_common/tests/sanitizer_allocator_test.cc (diff)compiler-rt.src/lib/sanitizer_common/tests/sanitizer_allocator_test.cc
Revision 354171 by reames:
[InstCombine] Address a couple stylistic issues pointed out by reviewer [NFC]

Better addressing comments from https://reviews.llvm.org/D58290.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp
Revision 354170 by reames:
[InstCombine] Convert atomicrmws to xchg or store where legal

Implement two more transforms of atomicrmw:
1) We can convert an atomicrmw which produces a known value in memory into an xchg instead.
2) We can convert an atomicrmw xchg w/o users into a store for some orderings.

Differential Revision: https://reviews.llvm.org/D58290
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/atomicrmw.ll (diff)llvm.src/test/Transforms/InstCombine/atomicrmw.ll
Revision 354169 by rnk:
Revert r354075 "[clang][FileManager] fillRealPathName even if we aren't opening the file"

The new test doesn't pass on Windows.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Basic/FileManager.cpp (diff)clang.src/lib/Basic/FileManager.cpp
The file was modified/cfe/trunk/unittests/Basic/FileManagerTest.cpp (diff)clang.src/unittests/Basic/FileManagerTest.cpp
Revision 354167 by smeenai:
[docs] Document LLVM_ENABLE_IDE

Use some of the wording and the motivating example from r344555. The
lack of documentation was pointed out by Roman Lebedev.

Differential Revision: https://reviews.llvm.org/D58286
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/CMake.rst (diff)llvm.src/docs/CMake.rst
Revision 354166 by danalbert:
[Driver] Default all Android ARM targets to NEON.

Summary:
There are an insignificant number of ARM Android devices that don't
support NEON. Default to using NEON since that will improve
performance on the majority of devices. Users that need to target
non-NEON devices can still explicitly disable NEON.

Reviewers: srhines, pirama, kristof.beyls

Reviewed By: pirama

Subscribers: efriedma, javed.absar, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58153
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/Arch/ARM.cpp (diff)clang.src/lib/Driver/ToolChains/Arch/ARM.cpp
The file was modified/cfe/trunk/test/Driver/arm-mfpu.c (diff)clang.src/test/Driver/arm-mfpu.c
Revision 354165 by Adrian Prantl:
Relax assertion to account for private framework modules, too.

rdar://problem/48116069
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/test/Modules/DebugInfo-fmodule-name.c (diff)clang.src/test/Modules/DebugInfo-fmodule-name.c
Revision 354164 by vsapsai:
[ObjC] Fix non-canonical types preventing type arguments substitution.

`QualType::substObjCTypeArgs` doesn't go past non-canonical types and as
the result misses some of the substitutions like `ObjCTypeParamType`.

Update `SimpleTransformVisitor` to traverse past the type sugar.

Reviewers: ahatanak, erik.pilkington

Reviewed By: erik.pilkington

Subscribers: jkorous, dexonsmith, cfe-commits

Differential Revision: https://reviews.llvm.org/D57270
Change TypePath in RepositoryPath in Workspace
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 354163 by niravd:
[X86] Fix LowerAsmOutputForConstraint.

Summary:
Update Flag when generating cc output.

Fixes PR40737.

Reviewers: rnk, nickdesaulniers, craig.topper, spatel

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58283
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/TargetLowering.h (diff)llvm.src/include/llvm/CodeGen/TargetLowering.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/CodeGen/SelectionDAG/TargetLowering.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.h (diff)llvm.src/lib/Target/X86/X86ISelLowering.h
The file was added/llvm/trunk/test/CodeGen/X86/pr40737.llllvm.src/test/CodeGen/X86/pr40737.ll
Revision 354162 by rnk:
[MSVC] Recognize `static_assert` keyword in C and C++98

Summary:
The main effect is that clang now accepts the following conforming C11
code with MSVC headers:
  #include <assert.h>
  static_assert(1, "true");

This is a non-conforming extension (the keyword is outside the
implementer's namespace), so it is placed under -fms-compatibility
instead of -fms-extensions like most MSVC-specific keyword extensions.

Normally, in C11, the compiler is supposed to provide the _Static_assert
keyword, and assert.h should define static_assert to _Static_assert.
However, that is not what MSVC does, and MSVC doesn't even provide
_Static_assert.

This also has the less important side effect of enabling static_assert
in C++98 mode with -fms-compatibility. It's exceptionally difficult to
use modern MSVC headers without C++14 even, so this is relatively
unimportant.

Fixes PR26672

Patch by Andrey Bokhanko!

Reviewers: rsmith, thakis

Subscribers: cfe-commits, STL_MSFT

Differential Revision: https://reviews.llvm.org/D17444
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/TokenKinds.def (diff)clang.src/include/clang/Basic/TokenKinds.def
The file was modified/cfe/trunk/lib/Basic/IdentifierTable.cpp (diff)clang.src/lib/Basic/IdentifierTable.cpp
The file was modified/cfe/trunk/test/Lexer/keywords_test.c (diff)clang.src/test/Lexer/keywords_test.c
The file was modified/cfe/trunk/test/Lexer/keywords_test.cpp (diff)clang.src/test/Lexer/keywords_test.cpp
Revision 354161 by ctopper:
[X86] Move all the SSE legality checks out of FP_TO_INTHelper and up to LowerFP_TO_INT. NFCI

These checks aren't needed on the call to FP_TO_INTHelper from the type legalizer for splitting i64. We always want to use X87 FIST/FISTT to memory there.

Moving up the SSE checks will allow this routine to focus on what it cares about and makes its return semantics cleaner.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 354160 by jonpa:
Recommit "[SystemZ] Do not emit VEXTEND or VROUND nodes without vector support."

It seems there were some problem with using a .mir test. For some reason
doing '-stop-before=codegenprepare' and then '-start-before=codegenprepare'
on the output .mir file results in the NoVRegs Property after instruction
selection.

Recommitting the same test as an .ll file instead.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZISelLowering.cpp (diff)llvm.src/lib/Target/SystemZ/SystemZISelLowering.cpp
The file was added/llvm/trunk/test/CodeGen/SystemZ/fp-conv-18.llllvm.src/test/CodeGen/SystemZ/fp-conv-18.ll
Revision 354159 by Vedant Kumar:
[CodeExtractor] Do not lift lifetime.end markers for region inputs

If a lifetime.end marker occurs along one path through the extraction
region, but not another, then it's still incorrect to lift the marker,
because there is some path through the extracted function which would
ordinarily not reach the marker. If the call to the extracted function
is in a loop, unrolling can cause inputs to the function to become
optimized out as undef after the first iteration.

To prevent incorrect stack slot merging in the calling function, it
should be sufficient to lift lifetime.start markers for region inputs.
I've tested this theory out by doing a stage2 check-all with randomized
splitting enabled.

This is a follow-up to r353973, and there's additional context for this
change in https://reviews.llvm.org/D57834.

rdar://47896986

Differential Revision: https://reviews.llvm.org/D58253
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Utils/CodeExtractor.cpp (diff)llvm.src/lib/Transforms/Utils/CodeExtractor.cpp
The file was modified/llvm/trunk/test/Transforms/CodeExtractor/PartialInlineAlloca4.ll (diff)llvm.src/test/Transforms/CodeExtractor/PartialInlineAlloca4.ll
The file was modified/llvm/trunk/test/Transforms/HotColdSplit/lifetime-markers-on-inputs-1.ll (diff)llvm.src/test/Transforms/HotColdSplit/lifetime-markers-on-inputs-1.ll
The file was modified/llvm/trunk/test/Transforms/HotColdSplit/lifetime-markers-on-inputs-2.ll (diff)llvm.src/test/Transforms/HotColdSplit/lifetime-markers-on-inputs-2.ll
Revision 354158 by Vedant Kumar:
[HotColdSplit] Schedule splitting late to fix perf regression

With or without PGO data applied, splitting early in the pipeline
(either before the inliner or shortly after it) regresses performance
across SPEC variants. The cause appears to be that splitting hides
context for subsequent optimizations.

Schedule splitting late again, in effect reversing r352080, which
scheduled the splitting pass early for code size benefits (documented in
https://reviews.llvm.org/D57082).

Differential Revision: https://reviews.llvm.org/D58258
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Passes/PassBuilder.h (diff)llvm.src/include/llvm/Passes/PassBuilder.h
The file was modified/llvm/trunk/lib/Passes/PassBuilder.cpp (diff)llvm.src/lib/Passes/PassBuilder.cpp
The file was modified/llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp (diff)llvm.src/lib/Transforms/IPO/PassManagerBuilder.cpp
The file was modified/llvm/trunk/test/Other/X86/lto-hot-cold-split.ll (diff)llvm.src/test/Other/X86/lto-hot-cold-split.ll
The file was modified/llvm/trunk/test/Other/new-pm-pgo.ll (diff)llvm.src/test/Other/new-pm-pgo.ll
The file was modified/llvm/trunk/test/Other/opt-hot-cold-split.ll (diff)llvm.src/test/Other/opt-hot-cold-split.ll
The file was modified/llvm/trunk/test/Other/pass-pipelines.ll (diff)llvm.src/test/Other/pass-pipelines.ll
Revision 354157 by eugenis:
Fix unsymbolized stack history printing.

Summary:
When symbols are unavailable, the current code prints
  sp: ... pc: ... (null) (null)
instead of module name + offset.

Change the output to include module name and offset, and also to match
the regular sanitizer stack trace format so that it is recognized by
symbolize.py out of the box.

Reviewers: kcc, pcc

Subscribers: kubamracek, jdoerfert, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58267
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_report.cc (diff)compiler-rt.src/lib/hwasan/hwasan_report.cc
The file was modified/compiler-rt/trunk/test/hwasan/TestCases/stack-uar.c (diff)compiler-rt.src/test/hwasan/TestCases/stack-uar.c
Revision 354156 by eugenis:
Runtime flags for malloc bisection.

Reviewers: kcc, pcc

Subscribers: kubamracek, mgorny, jdoerfert, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58162
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/hwasan/CMakeLists.txt (diff)compiler-rt.src/lib/hwasan/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_allocator.cc (diff)compiler-rt.src/lib/hwasan/hwasan_allocator.cc
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_flags.inc (diff)compiler-rt.src/lib/hwasan/hwasan_flags.inc
The file was added/compiler-rt/trunk/lib/hwasan/hwasan_malloc_bisect.hcompiler-rt.src/lib/hwasan/hwasan_malloc_bisect.h
The file was modified/compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt (diff)compiler-rt.src/lib/sanitizer_common/CMakeLists.txt
The file was added/compiler-rt/trunk/lib/sanitizer_common/sanitizer_hash.hcompiler-rt.src/lib/sanitizer_common/sanitizer_hash.h
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_stackdepot.cc (diff)compiler-rt.src/lib/sanitizer_common/sanitizer_stackdepot.cc
The file was added/compiler-rt/trunk/test/hwasan/TestCases/malloc_bisect.ccompiler-rt.src/test/hwasan/TestCases/malloc_bisect.c
Revision 354155 by eugenis:
Fix false positive when tag_in_malloc=0,tag_in_free=1.

Summary:
With tag_in_free=1, malloc() can not assume that the memory is untagged,
and needs to retag is to 0.

Reviewers: pcc, kcc

Subscribers: kubamracek, jfb, jdoerfert, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58158
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_allocator.cc (diff)compiler-rt.src/lib/hwasan/hwasan_allocator.cc
The file was added/compiler-rt/trunk/test/hwasan/TestCases/tag_in_free.ccompiler-rt.src/test/hwasan/TestCases/tag_in_free.c
Revision 354154 by adibiagio:
[MCA] Improved code comment. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/MCA/HardwareUnits/Scheduler.h (diff)llvm.src/include/llvm/MCA/HardwareUnits/Scheduler.h
The file was modified/llvm/trunk/lib/MCA/Instruction.cpp (diff)llvm.src/lib/MCA/Instruction.cpp
Revision 354153 by hahnfeld:
Revert "[compiler-rt] Cleanup usage of C++ ABI library"

This reverts r354132 because it breaks sanitizer-x86_64-linux:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/19915
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/CMakeLists.txt (diff)compiler-rt.src/CMakeLists.txt
The file was modified/compiler-rt/trunk/cmake/config-ix.cmake (diff)compiler-rt.src/cmake/config-ix.cmake
The file was modified/compiler-rt/trunk/lib/asan/CMakeLists.txt (diff)compiler-rt.src/lib/asan/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/fuzzer/tests/CMakeLists.txt (diff)compiler-rt.src/lib/fuzzer/tests/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/hwasan/CMakeLists.txt (diff)compiler-rt.src/lib/hwasan/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/scudo/CMakeLists.txt (diff)compiler-rt.src/lib/scudo/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/scudo/standalone/tests/CMakeLists.txt (diff)compiler-rt.src/lib/scudo/standalone/tests/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/tsan/dd/CMakeLists.txt (diff)compiler-rt.src/lib/tsan/dd/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/tsan/tests/CMakeLists.txt (diff)compiler-rt.src/lib/tsan/tests/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/ubsan/CMakeLists.txt (diff)compiler-rt.src/lib/ubsan/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/xray/tests/CMakeLists.txt (diff)compiler-rt.src/lib/xray/tests/CMakeLists.txt
Revision 354152 by rksimon:
Fix 80-column limit in SimplifyDemandedBits/SimplifyDemandedVectorElts. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Revision 354151 by brunoricci:
[Sema][NFC] SequenceChecker: Add tests for references/members, and prepare for the C++17 tests

Add some tests for unsequenced operations with members and references.
For now most of it is unhandled but it shows what work needs to be done.

Also merge the tests for the C++17 sequencing rules in warn-unsequenced.cpp
since we want to make sure that the appropriate warnings are still present
in C++17 without duplicating the whole content of warn-unsequenced.cpp.
Change TypePath in RepositoryPath in Workspace
The file was removed/cfe/trunk/test/SemaCXX/warn-unsequenced-cxx17.cppclang.src/test/SemaCXX/warn-unsequenced-cxx17.cpp
The file was modified/cfe/trunk/test/SemaCXX/warn-unsequenced.cpp (diff)clang.src/test/SemaCXX/warn-unsequenced.cpp
Revision 354150 by adibiagio:
[MCA][LSUnit] Return the ID of the dependent memory operation from method
isReady(). NFCI

This is yet another change in preparation for a fix for PR37494.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/MCA/HardwareUnits/LSUnit.h (diff)llvm.src/include/llvm/MCA/HardwareUnits/LSUnit.h
The file was modified/llvm/trunk/lib/MCA/HardwareUnits/LSUnit.cpp (diff)llvm.src/lib/MCA/HardwareUnits/LSUnit.cpp
The file was modified/llvm/trunk/lib/MCA/HardwareUnits/Scheduler.cpp (diff)llvm.src/lib/MCA/HardwareUnits/Scheduler.cpp
Revision 354147 by jfb:
Variable auto-init of blocks capturing self after init bugfix

Summary:
Blocks that capture themselves (and escape) after initialization currently codegen wrong because this:

  bool capturedByInit =
      Init && emission.IsEscapingByRef && isCapturedBy(D, Init);

  Address Loc =
      capturedByInit ? emission.Addr : emission.getObjectAddress(*this);

Already adjusts Loc from thr alloca to a GEP. This code:

    if (emission.IsEscapingByRef)
      Loc = emitBlockByrefAddress(Loc, &D, /*follow=*/false);

Was trying to do the same adjustment, and a GEP on a GEP (returning an int) triggers an assertion.

<rdar://problem/47943027>

Reviewers: ahatanak

Subscribers: jkorous, dexonsmith, cfe-commits, rjmccall

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58218
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGDecl.cpp (diff)clang.src/lib/CodeGen/CGDecl.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/trivial-auto-var-init.cpp (diff)clang.src/test/CodeGenCXX/trivial-auto-var-init.cpp
Revision 354146 by reames:
[Tests] Demonstrate more missing atomicrmw transforms
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstCombine/atomicrmw.ll (diff)llvm.src/test/Transforms/InstCombine/atomicrmw.ll
Revision 354144 by spatel:
[InstCombine] fix crash while trying to narrow a binop of shuffles (PR40734)

https://bugs.llvm.org/show_bug.cgi?id=40734
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/vec_shuffle.ll (diff)llvm.src/test/Transforms/InstCombine/vec_shuffle.ll
Revision 354142 by serge_sans_paille:
Revert r354137 - OptionalStorage implementation for trivial type, take III

This still fails on some random platform, and I fail to reproduce the issue.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ADT/Optional.h (diff)llvm.src/include/llvm/ADT/Optional.h