SuccessChanges

Summary

  1. [PowerPC][NFC][MachinePipeliner] Add some regression testcases Exposed by refactoring in https://reviews.llvm.org/D64665.
  2. Revert Fix and test inter-procedural register allocation for ARM This reverts r367669 (git commit f6b00c279a5587a25876752a6ecd8da0bed959dc) This was breaking a build bot http://lab.llvm.org:8011/builders/netbsd-amd64/builds/21233
  3. [lit] Fix 42812: lit test suite can no longer be run stand-alone Summary: This change updates the lit.cfg file to use llvm_config when it is available, but when it is not, it directly modifies the config object. This makes it possible to run the lit tests standalone without having built llvm (as long as the correct binaries are present in the path such as FileCheck and not). Because the lit tests don't take a hard dependency on llvm_config, some features such as system-windows have to have definitions in lit's cfg file as well. This is a potential issue as the os features sometimes change names (for example, we went from windows to system-windows, etc.). This can cause drift between lit's tests and the rest of the llvm tests. Reviewers: probinson, mgorny Reviewed By: mgorny Subscribers: delcypher, llvm-commits, asmith Tags: #llvm Differential Revision: https://reviews.llvm.org/D65674
  4. Revert "Remove support for unsupported MSVC versions" Mismatched preprocessor, I'll fix in a follow-up.
  5. Remove support for unsupported MSVC versions Reviewers: rnk, lebedev.ri Subscribers: hiraditya, jkorous, dexonsmith, lebedev.ri, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65662
  6. Fix ClangASTContext::CreateParameterDeclaration to not call addDecl Summary: The change https://reviews.llvm.org/D55575 modified ClangASTContext::CreateParameterDeclaration to call decl_ctx->addDecl(decl); this caused a regression since the existing code in DWARFASTParserClang::ParseChildParameters is called with the containing DeclContext. So when end up with cases where we are parsing a parameter for a member function and the parameter is added to the CXXRecordDecl as opposed to the CXXMethodDecl. This example is given in the regression test TestBreakpointInMemberFuncWNonPrimitiveParams.py which without this fix in a modules build leads to assert on setting a breakpoint in a member function with non primitive parameters. This scenario would be common when debugging LLDB or clang. Differential Revision: https://reviews.llvm.org/D65414
  7. [Attributor] Using liveness in other attributes. Modifying other AbstractAttributes to use Liveness AA and skip dead instructions. Reviewers: jdoerfert, uenoku Subscribers: hiraditya, llvm-commits Differential revision: https://reviews.llvm.org/D65243
  8. [BPF] annotate DIType metadata for builtin preseve_array_access_index() Previously, debuginfo types are annotated to IR builtin preserve_struct_access_index() and preserve_union_access_index(), but not preserve_array_access_index(). The debug info is useful to identify the root type name which later will be used for type comparison. For user access without explicit type conversions, the previous scheme works as we can ignore intermediate compiler generated type conversions (e.g., from union types to union members) and still generate correct access index string. The issue comes with user explicit type conversions, e.g., converting an array to a structure like below: struct t { int a; char b[40]; }; struct p { int c; int d; }; struct t *var = ...; ... __builtin_preserve_access_index(&(((struct p *)&(var->b[0]))->d)) ... Although BPF backend can derive the type of &(var->b[0]), explicit type annotation make checking more consistent and less error prone. Another benefit is for multiple dimension array handling. For example, struct p { int c; int d; } g[8][9][10]; ... __builtin_preserve_access_index(&g[2][3][4].d) ... It would be possible to calculate the number of "struct p"'s before accessing its member "d" if array debug info is available as it contains each dimension range. This patch enables to annotate IR builtin preserve_array_access_index() with proper debuginfo type. The unit test case and language reference is updated as well. Signed-off-by: Yonghong Song <yhs@fb.com> Differential Revision: https://reviews.llvm.org/D65664
  9. [AArch64][GlobalISel] Eliminate redundant G_ZEXT when the source is implicitly zext-loaded. These cases can come up when the extending loads combiner doesn't combine a zext(load) to a zextload op, due to some other operation being in between, which then gets simplified at a later stage. Differential Revision: https://reviews.llvm.org/D65360
  10. Add benchmarks to test the cost of allocator
  11. [TargetLowering] SimplifyMultipleUseDemandedBits - don't assume INSERT_VECTOR_ELT value type is simple. Noticed by inspection - this was copied from the X86 target equivalent where we can assume its legal/simple.
  12. Use MCRegister in MCRegisterInfo's interfaces Summary: As part of this, define DenseMapInfo for MCRegister (and Register while I'm at it) Depends on D65599 Reviewers: arsenm Subscribers: MatzeB, qcolombet, jvesely, wdng, nhaehnle, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65605
  13. [Statepoints] Fix overalignment of loads in no-realign-stack functions This really should have been part of 366765. For some reason, I forgot to handle the corresponding load side, and the readable test cases (using deopt vs statepoints) turned out to be overly reduced. Oops. As seen in the test change, the problem was that we were using a load with alignment expectations rather than the unaligned variant when the stack alignment was less than that prefered type alignment.
  14. hwasan: Remove unused field CurModuleUniqueId. NFCI.
  15. [ORC] Remove a dead method.
  16. [ScalarizeMaskedMemIntrin] Add constant mask support to expandload and compressstore scalarization This adds support for generating all the loads or stores for a constant mask into a single basic block with no conditionals. Differential Revision: https://reviews.llvm.org/D65613
  17. [Test] Demonstrate a realignment bug missed in r366765
  18. [PowerPC][NFC] Enable ADT BitVectorTest Test on ppc64le passed. This fix https://bugs.llvm.org/show_bug.cgi?id=42702
  19. [ORC] Turn on symbol-flags overrides for LLJIT on Windows by default. libObject does not apply the Exported flag to symbols in COFF object files, which can lead to assertions when the symbol flags initially derived from IR added to the JIT clash with the flags seen by the JIT linker. Both RTDyldObjectLinkingLayer and ObjectLinkingLayer have a workaround for this: they can be told to override the flags seen by the linker with the flags attached to the materialization responsibility object that was passed down to the linker. This patch modifies LLJIT's setup code to enable this override by default on platforms where COFF is the default object format.
  20. Add MCRegister and use it in MCRegisterClass::contains() Summary: Register can cast to MCRegister and we may want to consider asserting !isValid() || isPhysical() when expensive checks are on. Depends on D65554 Reviewers: arsenm Subscribers: wdng, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65599
  21. [DAGCombiner] try to convert opposing shifts to casts This reverses a questionable IR canonicalization when a truncate is free: sra (add (shl X, N1C), AddC), N1C --> sext (add (trunc X to (width - N1C)), AddC') https://rise4fun.com/Alive/slRC More details in PR42644: https://bugs.llvm.org/show_bug.cgi?id=42644 I limited this to pre-legalization for code simplicity because that should be enough to reverse the IR patterns. I don't have any evidence (no regression test diffs) that we need to try this later. Differential Revision: https://reviews.llvm.org/D65607
  22. [Driver][test] Avoid undefined grep in darwin-ld.c Summary: question-mark is not a BRE special character. POSIX.1-2017 XBD Section 9.3.2 indicates that the interpretation of `\?` as used by rC366282 is undefined. This patch uses an ERE instead. Reviewers: rnk, daltenty, xingxue, jasonliu Reviewed By: rnk Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65668
  23. Remove a dead diagnostic, NFC This was issued in Objective-C 1 mode, but we not longer support that, so this is just unreachable.
  24. Temporarily Revert "Changing representation of cv_def_range directives in Codeview debug info assembly format for better readability" This is breaking bots and the author asked me to revert. This reverts commit 367704.
  25. Use rip-relative addressing in asm test The absolute form is an error when targeting Darwin.
  26. Changing representation of cv_def_range directives in Codeview debug info assembly format for better readability
  27. [NewPassManager] Resolve assertion in CGSCCPassManager when CallCounts change. Summary: If the CallCounts change after an iteration of the DevirtSCCRepeatedPass, this is not reflected in the local CallCounts structure triggering the assertion checking the before/after sizes. Since it is valid for the size to change and this only uses the CallCounts for the devirtualizing heuristic, keep a <Function*, CallCount> map instead, and make the devirtualizing decision using the counts for the functions that exist both before and after the pass. Resolves PR42726. Reviewers: chandlerc Subscribers: mehdi_amini, jlebar, sanjoy.google, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65621
  28. [llvm-objcopy] - Fix the strip-dwo-groups.test. It was reported (https://reviews.llvm.org/D65273#1612246) that this test fails if the compilation directory contain a "debug_" substring. This should fix it.
  29. [Formatters] Temporarily disable libc++ std::function formatter due to performance issue Summary: We have been seeing increased reports of performance issue around large project and formatting std::function variables especially in functions signatures in back traces. There are some possible fixes but exploring those fixes may take time and it is better to temporarily disable the formatter due to its impact and re-enable it once we have a fix. Differential Revision: https://reviews.llvm.org/D65666
  30. [AArch64][GlobalISel] Support the neg_addsub_shifted_imm32 pattern Add an equivalent ComplexRendererFns function for SelectNegArithImmed. This allows us to select immediate adds of -1 by turning them into subtracts. Update select-binop.mir to show that the pattern works. Differential Revision: https://reviews.llvm.org/D65460
  31. [SimplifyCFG] Cleanup redundant conditions [NFC]. Summary: Since the for loop iterates over BB's predecessors, the branch conditions found must have BB as one of the successors. For an unconditional branch the successor must be BB, added `assert`. For a conditional branch, one of the two successors must be BB, simplify `else if` to `else` and `assert`. Sink common instructions outside the if/else block. Reviewers: sanjoy.google Subscribers: jlebar, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65596
  32. [AMDGPU] Regenerated saddo.ll test file for D47927
  33. Fix ARC after r367633
  34. CodeGen: Don't follow aliases when extracting type info. This fixes a crash in the case where the type info object is an alias pointing to a non-zero offset within a global or is otherwise unanalyzable by the stripPointerCasts() function. Looking through the alias is not the right thing to do anyway for similar reasons as D65118. Differential Revision: https://reviews.llvm.org/D65314
  35. [InstCombine] fold cmp+select using select operand equivalence As discussed in PR42696: https://bugs.llvm.org/show_bug.cgi?id=42696 ...but won't help that case yet. We have an odd situation where a select operand equivalence fold was implemented in InstSimplify when it could have been done more generally in InstCombine if we allow dropping of {nsw,nuw,exact} from a binop operand. Here's an example: https://rise4fun.com/Alive/Xplr %cmp = icmp eq i32 %x, 2147483647 %add = add nsw i32 %x, 1 %sel = select i1 %cmp, i32 -2147483648, i32 %add => %sel = add i32 %x, 1 I've left the InstSimplify code in place for now, but my guess is that we'd prefer to remove that as a follow-up to save on code duplication and compile-time. Differential Revision: https://reviews.llvm.org/D65576
  36. Fix git-llvm to not delete non-empty directories. Previously, if a directory contained only other sub-directories, one of which was being removed, git llvm would delete the parent and all its subdirs, even though only one should've been deleted. This error occurred in r366590, where the commit attempted to remove lldb/packages/Python/lldbsuite/test/tools/lldb-mi, but git-llvm erroneously removed the entire contents of lldb/packages/Python/lldbsuite/test/tools. This happened because "git apply" automatically removes empty directories locally, and the absence of a local directory was previously taken as an indication to call 'svn rm' on that directory. However, an empty local directory does not necessarily indicate that the directory is truly empty. Fix that by removing directories only when they're empty on the git side. Differential Revision: https://reviews.llvm.org/D65416
  37. gn build: Merge r367667.
  38. Fix PC adjustment in StackFrame::GetSymbolContext Summary: Update StackFrame::GetSymbolContext to mirror the logic in RegisterContextLLDB::InitializeNonZerothFrame that knows not to do the pc decrement when the given frame is a signal trap handler frame or the parent of one, because the pc may not follow a call in these frames. Accomplish this by adding a behaves_like_zeroth_frame field to lldb_private::StackFrame, set to true for the zeroth frame, for signal handler frames, and for parents of signal handler frames. Also add logic to propagate the signal handler flag from UnwindPlan to the FrameType on the RegisterContextLLDB it generates, and factor out a helper to resolve symbol and address range for an Address now that we need to invoke it in four places. Reviewers: jasonmolenda, clayborg, jfb Reviewed By: jasonmolenda Subscribers: labath, dexonsmith, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D64993
  39. [Sema] Disable -Wbitwise-op-parentheses and -Wlogical-op-parentheses by default Summary: The -Wparentheses warnings are enabled by default in clang but they are under -Wall in gcc (gcc/c-family/c.opt). Some of the operator precedence warnings are oftentimes criticized as noise (clang: default; gcc: -Wall). If a warning is very controversial, it is probably not a good idea to enable it by default. This patch disables the rather annoying ones: -Wbitwise-op-parentheses, e.g. i & i | i -Wlogical-op-parentheses, e.g. i && i || i After this change: ``` * = enabled by default -Wall -Wparentheses -Wlogical-op-parentheses -Wlogical-not-parentheses* -Wbitwise-op-parentheses -Wshift-op-parentheses* -Woverloaded-shift-op-parentheses* -Wparentheses-equality* -Wdangling-else* ``` -Woverloaded-shift-op-parentheses is typically followed by overload resolution failure. We can instead improve the error message, and probably delete -Woverloaded-shift-op-parentheses in the future. Keep it for now because it gives some diagnostics. Reviewers: akyrtzi, jyknight, rtrieu, rsmith, aaron.ballman Reviewed By: aaron.ballman Subscribers: dexonsmith, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65192
Revision 367732 by jsji:
[PowerPC][NFC][MachinePipeliner] Add some regression testcases

Exposed by refactoring in https://reviews.llvm.org/D64665.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/PowerPC/sms-cpy-1.llllvm.src/test/CodeGen/PowerPC/sms-cpy-1.ll
The file was added/llvm/trunk/test/CodeGen/PowerPC/sms-phi-1.llllvm.src/test/CodeGen/PowerPC/sms-phi-1.ll
The file was added/llvm/trunk/test/CodeGen/PowerPC/sms-phi-2.llllvm.src/test/CodeGen/PowerPC/sms-phi-2.ll
The file was added/llvm/trunk/test/CodeGen/PowerPC/sms-phi-3.llllvm.src/test/CodeGen/PowerPC/sms-phi-3.ll
The file was added/llvm/trunk/test/CodeGen/PowerPC/sms-phi-5.llllvm.src/test/CodeGen/PowerPC/sms-phi-5.ll
Revision 367731 by dyung:
Revert Fix and test inter-procedural register allocation for ARM

This reverts r367669 (git commit f6b00c279a5587a25876752a6ecd8da0bed959dc)

This was breaking a build bot http://lab.llvm.org:8011/builders/netbsd-amd64/builds/21233
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/TargetRegisterInfo.hllvm.src/include/llvm/CodeGen/TargetRegisterInfo.h
The file was modified/llvm/trunk/lib/CodeGen/RegUsageInfoCollector.cppllvm.src/lib/CodeGen/RegUsageInfoCollector.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMBaseRegisterInfo.cppllvm.src/lib/Target/ARM/ARMBaseRegisterInfo.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMBaseRegisterInfo.hllvm.src/lib/Target/ARM/ARMBaseRegisterInfo.h
The file was modified/llvm/trunk/lib/Target/ARM/ARMFrameLowering.cppllvm.src/lib/Target/ARM/ARMFrameLowering.cpp
The file was removed/llvm/trunk/test/CodeGen/ARM/ipra.llllvm.src/test/CodeGen/ARM/ipra.ll
Revision 367730 by stella.stamenova:
[lit] Fix 42812: lit test suite can no longer be run stand-alone

Summary:
This change updates the lit.cfg file to use llvm_config when it is available, but when it is not, it directly modifies the config object. This makes it possible to run the lit tests standalone without having built llvm (as long as the correct binaries are present in the path such as FileCheck and not).

Because the lit tests don't take a hard dependency on llvm_config, some features such as system-windows have to have definitions in lit's cfg file as well. This is a potential issue as the os features sometimes change names (for example, we went from windows to system-windows, etc.). This can cause drift between lit's tests and the rest of the llvm tests.

Reviewers: probinson, mgorny

Reviewed By: mgorny

Subscribers: delcypher, llvm-commits, asmith

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D65674
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/lit/tests/lit.cfgllvm.src/utils/lit/tests/lit.cfg
Revision 367728 by jfb:
Revert "Remove support for unsupported MSVC versions"

Mismatched preprocessor, I'll fix in a follow-up.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Demangle/DemangleConfig.hllvm.src/include/llvm/Demangle/DemangleConfig.h
The file was modified/llvm/trunk/lib/DebugInfo/PDB/DIA/DIASession.cppllvm.src/lib/DebugInfo/PDB/DIA/DIASession.cpp
The file was modified/llvm/trunk/lib/Support/Windows/explicit_symbols.incllvm.src/lib/Support/Windows/explicit_symbols.inc
Revision 367727 by jfb:
Remove support for unsupported MSVC versions

Reviewers: rnk, lebedev.ri

Subscribers: hiraditya, jkorous, dexonsmith, lebedev.ri, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D65662
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Demangle/DemangleConfig.hllvm.src/include/llvm/Demangle/DemangleConfig.h
The file was modified/llvm/trunk/lib/DebugInfo/PDB/DIA/DIASession.cppllvm.src/lib/DebugInfo/PDB/DIA/DIASession.cpp
The file was modified/llvm/trunk/lib/Support/Windows/explicit_symbols.incllvm.src/lib/Support/Windows/explicit_symbols.inc
Revision 367726 by shafik:
Fix ClangASTContext::CreateParameterDeclaration to not call addDecl

Summary:
The change https://reviews.llvm.org/D55575 modified ClangASTContext::CreateParameterDeclaration to call decl_ctx->addDecl(decl); this caused a regression since the existing code in DWARFASTParserClang::ParseChildParameters is called with the containing DeclContext. So when end up with cases where we are parsing a parameter for a member function and the parameter is added to the CXXRecordDecl as opposed to the CXXMethodDecl. This example is given in the regression test TestBreakpointInMemberFuncWNonPrimitiveParams.py which without this fix in a modules build leads to assert on setting a breakpoint in a member function with non primitive parameters. This scenario would be common when debugging LLDB or clang.

Differential Revision: https://reviews.llvm.org/D65414
Change TypePath in RepositoryPath in Workspace
The file was modified/lldb/trunk/include/lldb/Symbol/ClangASTContext.hlldb.src/include/lldb/Symbol/ClangASTContext.h
The file was added/lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_paramslldb.src/packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params
The file was added/lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/Makefilelldb.src/packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/Makefile
The file was added/lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/TestBreakpointInMemberFuncWNonPrimitiveParams.pylldb.src/packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/TestBreakpointInMemberFuncWNonPrimitiveParams.py
The file was added/lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/a.cpplldb.src/packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/a.cpp
The file was added/lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/a.hlldb.src/packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/a.h
The file was added/lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/main.cpplldb.src/packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/main.cpp
The file was added/lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/module.modulemaplldb.src/packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/module.modulemap
The file was modified/lldb/trunk/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpplldb.src/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
The file was modified/lldb/trunk/source/Plugins/SymbolFile/PDB/PDBASTParser.cpplldb.src/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
The file was modified/lldb/trunk/source/Symbol/ClangASTContext.cpplldb.src/source/Symbol/ClangASTContext.cpp
Revision 367725 by sstefan:
[Attributor] Using liveness in other attributes.

Modifying other AbstractAttributes to use Liveness AA and skip dead instructions.

Reviewers: jdoerfert, uenoku

Subscribers: hiraditya, llvm-commits

Differential revision: https://reviews.llvm.org/D65243
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Transforms/IPO/Attributor.hllvm.src/include/llvm/Transforms/IPO/Attributor.h
The file was modified/llvm/trunk/lib/Transforms/IPO/Attributor.cppllvm.src/lib/Transforms/IPO/Attributor.cpp
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/arg_returned.llllvm.src/test/Transforms/FunctionAttrs/arg_returned.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/liveness.llllvm.src/test/Transforms/FunctionAttrs/liveness.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/willreturn.llllvm.src/test/Transforms/FunctionAttrs/willreturn.ll
Revision 367724 by yhs:
[BPF] annotate DIType metadata for builtin preseve_array_access_index()

Previously, debuginfo types are annotated to
IR builtin preserve_struct_access_index() and
preserve_union_access_index(), but not
preserve_array_access_index(). The debug info
is useful to identify the root type name which
later will be used for type comparison.

For user access without explicit type conversions,
the previous scheme works as we can ignore intermediate
compiler generated type conversions (e.g., from union types to
union members) and still generate correct access index string.

The issue comes with user explicit type conversions, e.g.,
converting an array to a structure like below:
  struct t { int a; char b[40]; };
  struct p { int c; int d; };
  struct t *var = ...;
  ... __builtin_preserve_access_index(&(((struct p *)&(var->b[0]))->d)) ...
Although BPF backend can derive the type of &(var->b[0]),
explicit type annotation make checking more consistent
and less error prone.

Another benefit is for multiple dimension array handling.
For example,
  struct p { int c; int d; } g[8][9][10];
  ... __builtin_preserve_access_index(&g[2][3][4].d) ...
It would be possible to calculate the number of "struct p"'s
before accessing its member "d" if array debug info is
available as it contains each dimension range.

This patch enables to annotate IR builtin preserve_array_access_index()
with proper debuginfo type. The unit test case and language reference
is updated as well.

Signed-off-by: Yonghong Song <yhs@fb.com>

Differential Revision: https://reviews.llvm.org/D65664
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGExpr.cppclang.src/lib/CodeGen/CGExpr.cpp
The file was added/cfe/trunk/test/CodeGen/builtin-preserve-access-index-array.cclang.src/test/CodeGen/builtin-preserve-access-index-array.c
The file was modified/cfe/trunk/test/CodeGen/builtin-preserve-access-index.cclang.src/test/CodeGen/builtin-preserve-access-index.c
The file was modified/llvm/trunk/docs/LangRef.rstllvm.src/docs/LangRef.rst
The file was modified/llvm/trunk/include/llvm/IR/IRBuilder.hllvm.src/include/llvm/IR/IRBuilder.h
The file was modified/llvm/trunk/test/CodeGen/BPF/CORE/intrinsic-array.llllvm.src/test/CodeGen/BPF/CORE/intrinsic-array.ll
Revision 367723 by aemerson:
[AArch64][GlobalISel] Eliminate redundant G_ZEXT when the source is implicitly zext-loaded.

These cases can come up when the extending loads combiner doesn't combine a
zext(load) to a zextload op, due to some other operation being in between, which
then gets simplified at a later stage.

Differential Revision: https://reviews.llvm.org/D65360
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstructionSelector.cppllvm.src/lib/Target/AArch64/AArch64InstructionSelector.cpp
The file was added/llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-redundant-zext-of-load.mirllvm.src/test/CodeGen/AArch64/GlobalISel/select-redundant-zext-of-load.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-zextload.mirllvm.src/test/CodeGen/AArch64/GlobalISel/select-zextload.mir
Revision 367722 by ericwf:
Add benchmarks to test the cost of allocator
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/benchmarks/CMakeLists.txtlibcxx.src/benchmarks/CMakeLists.txt
The file was added/libcxx/trunk/benchmarks/allocation.bench.cpplibcxx.src/benchmarks/allocation.bench.cpp
Revision 367721 by rksimon:
[TargetLowering] SimplifyMultipleUseDemandedBits - don't assume INSERT_VECTOR_ELT value type is simple.

Noticed by inspection - this was copied from the X86 target equivalent where we can assume its legal/simple.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cppllvm.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Revision 367719 by dsanders:
Use MCRegister in MCRegisterInfo's interfaces

Summary:
As part of this, define DenseMapInfo for MCRegister (and Register while I'm at it)

Depends on D65599

Reviewers: arsenm

Subscribers: MatzeB, qcolombet, jvesely, wdng, nhaehnle, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D65605
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/Register.hllvm.src/include/llvm/CodeGen/Register.h
The file was modified/llvm/trunk/include/llvm/CodeGen/TargetRegisterInfo.hllvm.src/include/llvm/CodeGen/TargetRegisterInfo.h
The file was modified/llvm/trunk/include/llvm/MC/MCRegister.hllvm.src/include/llvm/MC/MCRegister.h
The file was modified/llvm/trunk/include/llvm/MC/MCRegisterInfo.hllvm.src/include/llvm/MC/MCRegisterInfo.h
The file was modified/llvm/trunk/lib/CodeGen/CalcSpillWeights.cppllvm.src/lib/CodeGen/CalcSpillWeights.cpp
The file was modified/llvm/trunk/lib/CodeGen/RegAllocFast.cppllvm.src/lib/CodeGen/RegAllocFast.cpp
The file was modified/llvm/trunk/lib/MC/MCRegisterInfo.cppllvm.src/lib/MC/MCRegisterInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIRegisterInfo.cppllvm.src/lib/Target/AMDGPU/SIRegisterInfo.cpp
The file was modified/llvm/trunk/lib/Target/Hexagon/BitTracker.cppllvm.src/lib/Target/Hexagon/BitTracker.cpp
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonExpandCondsets.cppllvm.src/lib/Target/Hexagon/HexagonExpandCondsets.cpp
Revision 367718 by reames:
[Statepoints] Fix overalignment of loads in no-realign-stack functions

This really should have been part of 366765.  For some reason, I forgot to handle the corresponding load side, and the readable test cases (using deopt vs statepoints) turned out to be overly reduced.  Oops.

As seen in the test change, the problem was that we were using a load with alignment expectations rather than the unaligned variant when the stack alignment was less than that prefered type alignment.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/StatepointLowering.cppllvm.src/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/statepoint-no-realign-stack.llllvm.src/test/CodeGen/X86/statepoint-no-realign-stack.ll
Revision 367717 by pcc:
hwasan: Remove unused field CurModuleUniqueId. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/HWAddressSanitizer.cppllvm.src/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
Revision 367716 by Lang Hames:
[ORC] Remove a dead method.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/Core.hllvm.src/include/llvm/ExecutionEngine/Orc/Core.h
The file was modified/llvm/trunk/lib/ExecutionEngine/Orc/Core.cppllvm.src/lib/ExecutionEngine/Orc/Core.cpp
Revision 367715 by ctopper:
[ScalarizeMaskedMemIntrin] Add constant mask support to expandload and compressstore scalarization

This adds support for generating all the loads or stores for a constant mask into a single basic block with no conditionals.

Differential Revision: https://reviews.llvm.org/D65613
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/ScalarizeMaskedMemIntrin.cppllvm.src/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/masked_compressstore.llllvm.src/test/CodeGen/X86/masked_compressstore.ll
The file was modified/llvm/trunk/test/CodeGen/X86/masked_expandload.llllvm.src/test/CodeGen/X86/masked_expandload.ll
The file was modified/llvm/trunk/test/CodeGen/X86/pr39666.llllvm.src/test/CodeGen/X86/pr39666.ll
The file was modified/llvm/trunk/test/CodeGen/X86/pr40994.llllvm.src/test/CodeGen/X86/pr40994.ll
The file was modified/llvm/trunk/test/Transforms/ScalarizeMaskedMemIntrin/X86/expand-masked-compressstore.llllvm.src/test/Transforms/ScalarizeMaskedMemIntrin/X86/expand-masked-compressstore.ll
The file was modified/llvm/trunk/test/Transforms/ScalarizeMaskedMemIntrin/X86/expand-masked-expandload.llllvm.src/test/Transforms/ScalarizeMaskedMemIntrin/X86/expand-masked-expandload.ll
Revision 367714 by reames:
[Test] Demonstrate a realignment bug missed in r366765
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/statepoint-no-realign-stack.llllvm.src/test/CodeGen/X86/statepoint-no-realign-stack.ll
Revision 367713 by jsji:
[PowerPC][NFC] Enable ADT BitVectorTest

Test on ppc64le passed.
This fix https://bugs.llvm.org/show_bug.cgi?id=42702
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/unittests/ADT/BitVectorTest.cppllvm.src/unittests/ADT/BitVectorTest.cpp
Revision 367712 by Lang Hames:
[ORC] Turn on symbol-flags overrides for LLJIT on Windows by default.

libObject does not apply the Exported flag to symbols in COFF object files,
which can lead to assertions when the symbol flags initially derived from
IR added to the JIT clash with the flags seen by the JIT linker. Both
RTDyldObjectLinkingLayer and ObjectLinkingLayer have a workaround for this:
they can be told to override the flags seen by the linker with the flags
attached to the materialization responsibility object that was passed down
to the linker. This patch modifies LLJIT's setup code to enable this override
by default on platforms where COFF is the default object format.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/LLJIT.hllvm.src/include/llvm/ExecutionEngine/Orc/LLJIT.h
The file was modified/llvm/trunk/lib/ExecutionEngine/Orc/LLJIT.cppllvm.src/lib/ExecutionEngine/Orc/LLJIT.cpp
Revision 367711 by dsanders:
Add MCRegister and use it in MCRegisterClass::contains()

Summary:
Register can cast to MCRegister and we may want to consider asserting
!isValid() || isPhysical() when expensive checks are on.

Depends on D65554

Reviewers: arsenm

Subscribers: wdng, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D65599
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/Register.hllvm.src/include/llvm/CodeGen/Register.h
The file was modified/llvm/trunk/include/llvm/MC/MCRegister.hllvm.src/include/llvm/MC/MCRegister.h
The file was modified/llvm/trunk/include/llvm/MC/MCRegisterInfo.hllvm.src/include/llvm/MC/MCRegisterInfo.h
Revision 367710 by spatel:
[DAGCombiner] try to convert opposing shifts to casts

This reverses a questionable IR canonicalization when a truncate
is free:

sra (add (shl X, N1C), AddC), N1C -->
sext (add (trunc X to (width - N1C)), AddC')

https://rise4fun.com/Alive/slRC

More details in PR42644:
https://bugs.llvm.org/show_bug.cgi?id=42644

I limited this to pre-legalization for code simplicity because that
should be enough to reverse the IR patterns. I don't have any
evidence (no regression test diffs) that we need to try this later.

Differential Revision: https://reviews.llvm.org/D65607
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cppllvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/shift-mod.llllvm.src/test/CodeGen/AArch64/shift-mod.ll
The file was modified/llvm/trunk/test/CodeGen/X86/shift-combine.llllvm.src/test/CodeGen/X86/shift-combine.ll
Revision 367709 by hubert.reinterpretcast:
[Driver][test] Avoid undefined grep in darwin-ld.c

Summary:
question-mark is not a BRE special character.

POSIX.1-2017 XBD Section 9.3.2 indicates that the interpretation of `\?`
as used by rC366282 is undefined. This patch uses an ERE instead.

Reviewers: rnk, daltenty, xingxue, jasonliu

Reviewed By: rnk

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D65668
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Driver/darwin-ld.cclang.src/test/Driver/darwin-ld.c
Revision 367708 by epilk:
Remove a dead diagnostic, NFC

This was issued in Objective-C 1 mode, but we not longer support that, so this
is just unreachable.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticParseKinds.tdclang.src/include/clang/Basic/DiagnosticParseKinds.td
The file was modified/cfe/trunk/lib/Parse/ParseObjc.cppclang.src/lib/Parse/ParseObjc.cpp
Revision 367707 by echristo:
Temporarily Revert "Changing representation of cv_def_range directives in Codeview debug info assembly format for better readability"

This is breaking bots and the author asked me to revert.

This reverts commit 367704.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolRecord.hllvm.src/include/llvm/DebugInfo/CodeView/SymbolRecord.h
The file was modified/llvm/trunk/include/llvm/MC/MCStreamer.hllvm.src/include/llvm/MC/MCStreamer.h
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cppllvm.src/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/SymbolDumper.cppllvm.src/lib/DebugInfo/CodeView/SymbolDumper.cpp
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/SymbolRecordMapping.cppllvm.src/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp
The file was modified/llvm/trunk/lib/MC/MCAsmStreamer.cppllvm.src/lib/MC/MCAsmStreamer.cpp
The file was modified/llvm/trunk/lib/MC/MCParser/AsmParser.cppllvm.src/lib/MC/MCParser/AsmParser.cpp
The file was modified/llvm/trunk/lib/MC/MCStreamer.cppllvm.src/lib/MC/MCStreamer.cpp
The file was modified/llvm/trunk/lib/ObjectYAML/CodeViewYAMLSymbols.cppllvm.src/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
The file was modified/llvm/trunk/test/DebugInfo/COFF/fp-stack.llllvm.src/test/DebugInfo/COFF/fp-stack.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/local-variable-gap.llllvm.src/test/DebugInfo/COFF/local-variable-gap.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/local-variables.llllvm.src/test/DebugInfo/COFF/local-variables.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/nrvo.llllvm.src/test/DebugInfo/COFF/nrvo.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/pieces.llllvm.src/test/DebugInfo/COFF/pieces.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/register-variables.llllvm.src/test/DebugInfo/COFF/register-variables.ll
The file was modified/llvm/trunk/test/MC/COFF/cv-def-range-align.sllvm.src/test/MC/COFF/cv-def-range-align.s
The file was removed/llvm/trunk/test/MC/COFF/cv-def-range-errors.sllvm.src/test/MC/COFF/cv-def-range-errors.s
The file was modified/llvm/trunk/test/MC/COFF/cv-def-range-gap.sllvm.src/test/MC/COFF/cv-def-range-gap.s
The file was modified/llvm/trunk/test/MC/COFF/cv-def-range.sllvm.src/test/MC/COFF/cv-def-range.s
The file was modified/llvm/trunk/tools/llvm-pdbutil/MinimalSymbolDumper.cppllvm.src/tools/llvm-pdbutil/MinimalSymbolDumper.cpp
Revision 367706 by josepht:
Use rip-relative addressing in asm test

The absolute form is an error when targeting Darwin.
Change TypePath in RepositoryPath in Workspace
The file was modified/lldb/trunk/lit/Unwind/Inputs/trap_frame_sym_ctx.slldb.src/lit/Unwind/Inputs/trap_frame_sym_ctx.s
Revision 367704 by nilanjana_basu:
Changing representation of cv_def_range directives in Codeview debug info assembly format for better readability
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolRecord.hllvm.src/include/llvm/DebugInfo/CodeView/SymbolRecord.h
The file was modified/llvm/trunk/include/llvm/MC/MCStreamer.hllvm.src/include/llvm/MC/MCStreamer.h
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cppllvm.src/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/SymbolDumper.cppllvm.src/lib/DebugInfo/CodeView/SymbolDumper.cpp
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/SymbolRecordMapping.cppllvm.src/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp
The file was modified/llvm/trunk/lib/MC/MCAsmStreamer.cppllvm.src/lib/MC/MCAsmStreamer.cpp
The file was modified/llvm/trunk/lib/MC/MCParser/AsmParser.cppllvm.src/lib/MC/MCParser/AsmParser.cpp
The file was modified/llvm/trunk/lib/MC/MCStreamer.cppllvm.src/lib/MC/MCStreamer.cpp
The file was modified/llvm/trunk/lib/ObjectYAML/CodeViewYAMLSymbols.cppllvm.src/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
The file was modified/llvm/trunk/test/DebugInfo/COFF/fp-stack.llllvm.src/test/DebugInfo/COFF/fp-stack.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/local-variable-gap.llllvm.src/test/DebugInfo/COFF/local-variable-gap.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/local-variables.llllvm.src/test/DebugInfo/COFF/local-variables.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/nrvo.llllvm.src/test/DebugInfo/COFF/nrvo.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/pieces.llllvm.src/test/DebugInfo/COFF/pieces.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/register-variables.llllvm.src/test/DebugInfo/COFF/register-variables.ll
The file was modified/llvm/trunk/test/MC/COFF/cv-def-range-align.sllvm.src/test/MC/COFF/cv-def-range-align.s
The file was added/llvm/trunk/test/MC/COFF/cv-def-range-errors.sllvm.src/test/MC/COFF/cv-def-range-errors.s
The file was modified/llvm/trunk/test/MC/COFF/cv-def-range-gap.sllvm.src/test/MC/COFF/cv-def-range-gap.s
The file was modified/llvm/trunk/test/MC/COFF/cv-def-range.sllvm.src/test/MC/COFF/cv-def-range.s
The file was modified/llvm/trunk/tools/llvm-pdbutil/MinimalSymbolDumper.cppllvm.src/tools/llvm-pdbutil/MinimalSymbolDumper.cpp
Revision 367703 by asbirlea:
[NewPassManager] Resolve assertion in CGSCCPassManager when CallCounts change.

Summary:
If the CallCounts change after an iteration of the DevirtSCCRepeatedPass, this is not reflected in the local CallCounts structure triggering the assertion checking the before/after sizes.
Since it is valid for the size to change and this only uses the CallCounts for the devirtualizing heuristic, keep a <Function*, CallCount> map instead, and make the devirtualizing decision using the counts for the functions that exist both before and after the pass.

Resolves PR42726.

Reviewers: chandlerc

Subscribers: mehdi_amini, jlebar, sanjoy.google, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D65621
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Analysis/CGSCCPassManager.hllvm.src/include/llvm/Analysis/CGSCCPassManager.h
The file was added/llvm/trunk/test/Other/new-pm-pr42726-cgscc.llllvm.src/test/Other/new-pm-pr42726-cgscc.ll
Revision 367702 by grimar:
[llvm-objcopy] - Fix the strip-dwo-groups.test.

It was reported (https://reviews.llvm.org/D65273#1612246)
that this test fails if the compilation directory contain
a "debug_" substring.

This should fix it.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/strip-dwo-groups.testllvm.src/test/tools/llvm-objcopy/ELF/strip-dwo-groups.test
Revision 367701 by shafik:
[Formatters] Temporarily disable libc++ std::function formatter due to performance issue

Summary: We have been seeing increased reports of performance issue around large project and formatting std::function variables especially in functions signatures in back traces. There are some possible fixes but exploring those fixes may take time and it is better to temporarily disable the formatter due to its impact and re-enable it once we have a fix.

Differential Revision: https://reviews.llvm.org/D65666
Change TypePath in RepositoryPath in Workspace
The file was modified/lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/function/TestLibCxxFunction.pylldb.src/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/function/TestLibCxxFunction.py
The file was modified/lldb/trunk/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpplldb.src/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
Revision 367700 by paquette:
[AArch64][GlobalISel] Support the neg_addsub_shifted_imm32 pattern

Add an equivalent ComplexRendererFns function for SelectNegArithImmed. This
allows us to select immediate adds of -1 by turning them into subtracts.

Update select-binop.mir to show that the pattern works.

Differential Revision: https://reviews.llvm.org/D65460
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.tdllvm.src/lib/Target/AArch64/AArch64InstrFormats.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstructionSelector.cppllvm.src/lib/Target/AArch64/AArch64InstructionSelector.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-binop.mirllvm.src/test/CodeGen/AArch64/GlobalISel/select-binop.mir
Revision 367699 by asbirlea:
[SimplifyCFG] Cleanup redundant conditions [NFC].

Summary:
Since the for loop iterates over BB's predecessors, the branch conditions found must have BB as one of the successors.
For an unconditional branch the successor must be BB, added `assert`.
For a conditional branch, one of the two successors must be BB, simplify `else if` to `else` and `assert`.
Sink common instructions outside the if/else block.

Reviewers: sanjoy.google

Subscribers: jlebar, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D65596
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cppllvm.src/lib/Transforms/Utils/SimplifyCFG.cpp
Revision 367698 by rksimon:
[AMDGPU] Regenerated saddo.ll test file for D47927
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/saddo.llllvm.src/test/CodeGen/AMDGPU/saddo.ll
Revision 367697 by dsanders:
Fix ARC after r367633
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARC/ARCOptAddrMode.cppllvm.src/lib/Target/ARC/ARCOptAddrMode.cpp
Revision 367696 by pcc:
CodeGen: Don't follow aliases when extracting type info.

This fixes a crash in the case where the type info object is an alias
pointing to a non-zero offset within a global or is otherwise unanalyzable
by the stripPointerCasts() function. Looking through the alias is not the
right thing to do anyway for similar reasons as D65118.

Differential Revision: https://reviews.llvm.org/D65314
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/Analysis.cppllvm.src/lib/CodeGen/Analysis.cpp
The file was added/llvm/trunk/test/CodeGen/X86/typeid-alias.llllvm.src/test/CodeGen/X86/typeid-alias.ll
Revision 367695 by spatel:
[InstCombine] fold cmp+select using select operand equivalence

As discussed in PR42696:
https://bugs.llvm.org/show_bug.cgi?id=42696
...but won't help that case yet.

We have an odd situation where a select operand equivalence fold was
implemented in InstSimplify when it could have been done more generally
in InstCombine if we allow dropping of {nsw,nuw,exact} from a binop operand.

Here's an example:
https://rise4fun.com/Alive/Xplr

  %cmp = icmp eq i32 %x, 2147483647
  %add = add nsw i32 %x, 1
  %sel = select i1 %cmp, i32 -2147483648, i32 %add
  =>
  %sel = add i32 %x, 1

I've left the InstSimplify code in place for now, but my guess is that we'd
prefer to remove that as a follow-up to save on code duplication and
compile-time.

Differential Revision: https://reviews.llvm.org/D65576
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/InstructionSimplify.cppllvm.src/lib/Analysis/InstructionSimplify.cpp
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineSelect.cppllvm.src/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/select-bitext-bitwise-ops.llllvm.src/test/Transforms/InstCombine/select-bitext-bitwise-ops.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/select-obo-peo-ops.llllvm.src/test/Transforms/InstCombine/select-obo-peo-ops.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/select.llllvm.src/test/Transforms/InstCombine/select.ll
Revision 367693 by jyknight:
Fix git-llvm to not delete non-empty directories.

Previously, if a directory contained only other sub-directories, one
of which was being removed, git llvm would delete the parent and all
its subdirs, even though only one should've been deleted.

This error occurred in r366590, where the commit attempted to remove
lldb/packages/Python/lldbsuite/test/tools/lldb-mi, but git-llvm
erroneously removed the entire contents of
lldb/packages/Python/lldbsuite/test/tools.

This happened because "git apply" automatically removes empty
directories locally, and the absence of a local directory was
previously taken as an indication to call 'svn rm' on that
directory. However, an empty local directory does not necessarily
indicate that the directory is truly empty.

Fix that by removing directories only when they're empty on the git
side.

Differential Revision: https://reviews.llvm.org/D65416
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/git-svn/git-llvmllvm.src/utils/git-svn/git-llvm
Revision 367692 by pcc:
gn build: Merge r367667.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/clang-tools-extra/clangd/unittests/BUILD.gnllvm.src/utils/gn/secondary/clang-tools-extra/clangd/unittests/BUILD.gn
Revision 367691 by josepht:
Fix PC adjustment in StackFrame::GetSymbolContext

Summary:
Update StackFrame::GetSymbolContext to mirror the logic in
RegisterContextLLDB::InitializeNonZerothFrame that knows not to do the
pc decrement when the given frame is a signal trap handler frame or the
parent of one, because the pc may not follow a call in these frames.
Accomplish this by adding a behaves_like_zeroth_frame field to
lldb_private::StackFrame, set to true for the zeroth frame, for
signal handler frames, and for parents of signal handler frames.

Also add logic to propagate the signal handler flag from UnwindPlan to
the FrameType on the RegisterContextLLDB it generates, and factor out a
helper to resolve symbol and address range for an Address now that we
need to invoke it in four places.

Reviewers: jasonmolenda, clayborg, jfb

Reviewed By: jasonmolenda

Subscribers: labath, dexonsmith, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D64993
Change TypePath in RepositoryPath in Workspace
The file was modified/lldb/trunk/include/lldb/Core/Address.hlldb.src/include/lldb/Core/Address.h
The file was modified/lldb/trunk/include/lldb/Target/StackFrame.hlldb.src/include/lldb/Target/StackFrame.h
The file was modified/lldb/trunk/include/lldb/Target/Unwind.hlldb.src/include/lldb/Target/Unwind.h
The file was added/lldb/trunk/lit/Unwind/Inputs/trap_frame_sym_ctx.slldb.src/lit/Unwind/Inputs/trap_frame_sym_ctx.s
The file was added/lldb/trunk/lit/Unwind/trap_frame_sym_ctx.testlldb.src/lit/Unwind/trap_frame_sym_ctx.test
The file was modified/lldb/trunk/source/Core/Address.cpplldb.src/source/Core/Address.cpp
The file was modified/lldb/trunk/source/Plugins/Process/Utility/HistoryUnwind.cpplldb.src/source/Plugins/Process/Utility/HistoryUnwind.cpp
The file was modified/lldb/trunk/source/Plugins/Process/Utility/HistoryUnwind.hlldb.src/source/Plugins/Process/Utility/HistoryUnwind.h
The file was modified/lldb/trunk/source/Plugins/Process/Utility/RegisterContextLLDB.cpplldb.src/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
The file was modified/lldb/trunk/source/Plugins/Process/Utility/RegisterContextLLDB.hlldb.src/source/Plugins/Process/Utility/RegisterContextLLDB.h
The file was modified/lldb/trunk/source/Plugins/Process/Utility/UnwindLLDB.cpplldb.src/source/Plugins/Process/Utility/UnwindLLDB.cpp
The file was modified/lldb/trunk/source/Plugins/Process/Utility/UnwindLLDB.hlldb.src/source/Plugins/Process/Utility/UnwindLLDB.h
The file was modified/lldb/trunk/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpplldb.src/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpp
The file was modified/lldb/trunk/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.hlldb.src/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.h
The file was modified/lldb/trunk/source/Target/StackFrame.cpplldb.src/source/Target/StackFrame.cpp
The file was modified/lldb/trunk/source/Target/StackFrameList.cpplldb.src/source/Target/StackFrameList.cpp
Revision 367690 by maskray:
[Sema] Disable -Wbitwise-op-parentheses and -Wlogical-op-parentheses by default

Summary:
The -Wparentheses warnings are enabled by default in clang but they are under
-Wall in gcc (gcc/c-family/c.opt). Some of the operator precedence warnings are
oftentimes criticized as noise (clang: default; gcc: -Wall). If a warning is
very controversial, it is probably not a good idea to enable it by default.
This patch disables the rather annoying ones:

-Wbitwise-op-parentheses, e.g. i & i | i
-Wlogical-op-parentheses, e.g. i && i || i

After this change:

```
* = enabled by default

-Wall
  -Wparentheses
    -Wlogical-op-parentheses
    -Wlogical-not-parentheses*
    -Wbitwise-op-parentheses
    -Wshift-op-parentheses*
    -Woverloaded-shift-op-parentheses*
    -Wparentheses-equality*
    -Wdangling-else*
```

-Woverloaded-shift-op-parentheses is typically followed by overload
resolution failure. We can instead improve the error message, and
probably delete -Woverloaded-shift-op-parentheses in the future. Keep it
for now because it gives some diagnostics.

Reviewers: akyrtzi, jyknight, rtrieu, rsmith, aaron.ballman

Reviewed By: aaron.ballman

Subscribers: dexonsmith, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D65192
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.tdclang.src/include/clang/Basic/DiagnosticSemaKinds.td
The file was added/cfe/trunk/test/Sema/bitwise-op-parentheses.cclang.src/test/Sema/bitwise-op-parentheses.c
The file was added/cfe/trunk/test/Sema/logical-op-parentheses.cclang.src/test/Sema/logical-op-parentheses.c
The file was modified/cfe/trunk/test/Sema/parentheses.cclang.src/test/Sema/parentheses.c
The file was modified/cfe/trunk/test/SemaCXX/parentheses.cppclang.src/test/SemaCXX/parentheses.cpp