SuccessChanges

Summary

  1. Revert r302547 ([mips] Impose a threshold for coercion of aggregates) Reverting Modified MipsABIInfo::classifyArgumentType so that it now coerces aggregate structures only if the size of said aggregate is less than 16/64 bytes, depending on the ABI. as it broke clang-with-lto-ubuntu builder.
  2. [RegScavenger] Rangify a loop, NFC
  3. Adding VSCode syntax colorizer to utils (generated from textmate colorizer). --This line, and those below, will be igored-- A utils/vscode A utils/vscode/README A utils/vscode/tablegen A utils/vscode/tablegen/.vscode A utils/vscode/tablegen/.vscode/launch.json A utils/vscode/tablegen/CHANGELOG.md A utils/vscode/tablegen/README.md A utils/vscode/tablegen/language-configuration.json A utils/vscode/tablegen/package.json A utils/vscode/tablegen/syntaxes A utils/vscode/tablegen/syntaxes/TableGen.tmLanguage A utils/vscode/tablegen/vsc-extension-quickstart.md
  4. [NewGVN] Fix a consistent order for phi nodes operands. The way we currently define congruency for two PHIExpression(s) is: 1) The operands to the phi functions are congruent 2) The PHIs are defined in the same BasicBlock. NewGVN works under the assumption that phi operands are in predecessor order, or at least in some consistent order. OTOH, is valid IR: patatino: %meh = phi i16 [ %0, %winky ], [ %conv1, %tinky ] %banana = phi i16 [ %0, %tinky ], [ %conv1, %winky ] br label %end and the in-memory representations of the two SSA registers have an inconsistent order. This violation of NewGVN assumptions results into two PHIs found congruent when they're not. While we think it's useful to have always a consistent order enforced, let's fix this in NewGVN sorting uses in predecessor order before creating a PHI expression. Differential Revision: https://reviews.llvm.org/D32990
  5. [APInt] Remove return value from tcFullMultiply. The description says it returns the number of words needed to represent the results. But the way it was coded it always returns (lhsWords + rhsWords) or (lhsWords + rhsWords - 1). But the result could be even smaller than that and it wouldn't tell you. No one uses the result today so rather than try to fix it, just remove it.
  6. NewGVN: Make all of symbolic evaluation logically const.
  7. [X86] Add more patterns for BZHI isel This patch adds more patterns that a reasonable person might write that can be compiled to BZHI. This adds support for (~0U >> (32 - b)) & a; and a << (32 - b) >> (32 - b); This was inspired by the code in APInt::clearUnusedBits. This can pass an index of 32 to the bzhi instruction which a quick test of Haswell hardware shows will not mask any bits. Though the description text in the Intel manual says the "index is saturated to OperandSize-1". The pseudocode in the same manual indicates no bits will be zeroed for this case. I think this is still missing cases where the subtract portion is an 8-bit operation. Differential Revision: https://reviews.llvm.org/D32616
  8. [InstCombineCasts] Fix checks in sext->lshr->trunc pattern. The comment says to avoid the case where zero bits are shifted into the truncated value, but the code checks that the shift is smaller than the truncated value instead of the number of bits added by the sign extension. Fixing this allows a shift by more than the value size to be introduced, which is undefined behavior, so the shift is capped at the value size minus one, which has the expected behavior of filling the value with the sign bit. Patch by Jacob Young! Differential Revision: https://reviews.llvm.org/D32285
  9. [mips] Impose a threshold for coercion of aggregates Modified MipsABIInfo::classifyArgumentType so that it now coerces aggregate structures only if the size of said aggregate is less than 16/64 bytes, depending on the ABI. Patch by Stefan Maksimovic. Differential Revision: https://reviews.llvm.org/D32900
  10. VX512] Only look at lower bit in constant scalar masks for scalar masked instructions only the lower bit of the mask is relevant. so for constant masks we should either do an unmasked operation or no operation, depending on the value of the lower bit. This patch handles cases where the lower bit is '1'. Differential Revision: https://reviews.llvm.org/D32805
  11. [CodeCompletion] Complete platform names in @available expressions rdar://32074504
  12. Re-land "Use the frame index side table for byval and inalloca arguments" This re-lands r302483. It was not the cause of PR32977.
  13. Re-land "Don't add DBG_VALUE instructions for static allocas in dbg.declare" This re-lands commit r302461. It was not the cause of PR32977.
  14. Revert r302476 "Update testcase for upstream LLVM changes." That test update was for r302469, which was reverted in r302533 due to PR32977.
  15. Allow compiler-rt to find lld and libc++ parallel to LLVM, as in the monorepo
Revision 302555 by petarj:
Revert r302547 ([mips] Impose a threshold for coercion of aggregates)

Reverting
  Modified MipsABIInfo::classifyArgumentType so that it now coerces
  aggregate structures only if the size of said aggregate is less than 16/64
  bytes, depending on the ABI.
as it broke clang-with-lto-ubuntu builder.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/TargetInfo.cpp (diff)llvm-revision.src/cfe/trunk/lib/CodeGen/TargetInfo.cpp
The file was removed/cfe/trunk/test/CodeGen/mips-aggregate-arg.cllvm-revision.src/cfe/trunk/test/CodeGen/mips-aggregate-arg.c
Revision 302554 by kparzysz:
[RegScavenger] Rangify a loop, NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/RegisterScavenging.cpp (diff)llvm-revision.src/llvm/trunk/lib/CodeGen/RegisterScavenging.cpp
Revision 302553 by zer0:
Adding VSCode syntax colorizer to utils (generated from textmate colorizer).
--This line, and those below, will be igored--

A    utils/vscode
A    utils/vscode/README
A    utils/vscode/tablegen
A    utils/vscode/tablegen/.vscode
A    utils/vscode/tablegen/.vscode/launch.json
A    utils/vscode/tablegen/CHANGELOG.md
A    utils/vscode/tablegen/README.md
A    utils/vscode/tablegen/language-configuration.json
A    utils/vscode/tablegen/package.json
A    utils/vscode/tablegen/syntaxes
A    utils/vscode/tablegen/syntaxes/TableGen.tmLanguage
A    utils/vscode/tablegen/vsc-extension-quickstart.md
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/utils/vscodellvm-revision.src/llvm/trunk/utils/vscode
The file was added/llvm/trunk/utils/vscode/READMEllvm-revision.src/llvm/trunk/utils/vscode/README
The file was added/llvm/trunk/utils/vscode/tablegenllvm-revision.src/llvm/trunk/utils/vscode/tablegen
The file was added/llvm/trunk/utils/vscode/tablegen/.vscodellvm-revision.src/llvm/trunk/utils/vscode/tablegen/.vscode
The file was added/llvm/trunk/utils/vscode/tablegen/.vscode/launch.jsonllvm-revision.src/llvm/trunk/utils/vscode/tablegen/.vscode/launch.json
The file was added/llvm/trunk/utils/vscode/tablegen/CHANGELOG.mdllvm-revision.src/llvm/trunk/utils/vscode/tablegen/CHANGELOG.md
The file was added/llvm/trunk/utils/vscode/tablegen/README.mdllvm-revision.src/llvm/trunk/utils/vscode/tablegen/README.md
The file was added/llvm/trunk/utils/vscode/tablegen/language-configuration.jsonllvm-revision.src/llvm/trunk/utils/vscode/tablegen/language-configuration.json
The file was added/llvm/trunk/utils/vscode/tablegen/package.jsonllvm-revision.src/llvm/trunk/utils/vscode/tablegen/package.json
The file was added/llvm/trunk/utils/vscode/tablegen/syntaxesllvm-revision.src/llvm/trunk/utils/vscode/tablegen/syntaxes
The file was added/llvm/trunk/utils/vscode/tablegen/syntaxes/TableGen.tmLanguagellvm-revision.src/llvm/trunk/utils/vscode/tablegen/syntaxes/TableGen.tmLanguage
The file was added/llvm/trunk/utils/vscode/tablegen/vsc-extension-quickstart.mdllvm-revision.src/llvm/trunk/utils/vscode/tablegen/vsc-extension-quickstart.md
Revision 302552 by davide:
[NewGVN] Fix a consistent order for phi nodes operands.

The way we currently define congruency for two PHIExpression(s) is:

1) The operands to the phi functions are congruent
2) The PHIs are defined in the same BasicBlock.

NewGVN works under the assumption that phi operands are in predecessor
order, or at least in some consistent order. OTOH, is valid IR:

patatino:
  %meh = phi i16 [ %0, %winky ], [ %conv1, %tinky ]
  %banana = phi i16 [ %0, %tinky ], [ %conv1, %winky ]
  br label %end

and the in-memory representations of the two SSA registers have an
inconsistent order. This violation of NewGVN assumptions results into
two PHIs found congruent when they're not. While we think it's useful
to have always a consistent order enforced, let's fix this in NewGVN
sorting uses in predecessor order before creating a PHI expression.

Differential Revision:  https://reviews.llvm.org/D32990
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/NewGVN.cpp (diff)llvm-revision.src/llvm/trunk/lib/Transforms/Scalar/NewGVN.cpp
The file was added/llvm/trunk/test/Transforms/NewGVN/pr32952.llllvm-revision.src/llvm/trunk/test/Transforms/NewGVN/pr32952.ll
Revision 302551 by ctopper:
[APInt] Remove return value from tcFullMultiply.

The description says it returns the number of words needed to represent the results. But the way it was coded it always returns (lhsWords + rhsWords) or (lhsWords + rhsWords - 1). But the result could be even smaller than that and it wouldn't tell you.

No one uses the result today so rather than try to fix it, just remove it.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ADT/APInt.h (diff)llvm-revision.src/llvm/trunk/include/llvm/ADT/APInt.h
The file was modified/llvm/trunk/lib/Support/APInt.cpp (diff)llvm-revision.src/llvm/trunk/lib/Support/APInt.cpp
Revision 302550 by dannyb:
NewGVN: Make all of symbolic evaluation logically const.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/NewGVN.cpp (diff)llvm-revision.src/llvm/trunk/lib/Transforms/Scalar/NewGVN.cpp
Revision 302549 by ctopper:
[X86] Add more patterns for BZHI isel

This patch adds more patterns that a reasonable person might write that can be compiled to BZHI.

This adds support for

(~0U >> (32 - b)) & a;

and

a << (32 - b) >> (32 - b);

This was inspired by the code in APInt::clearUnusedBits.

This can pass an index of 32 to the bzhi instruction which a quick test of Haswell hardware shows will not mask any bits. Though the description text in the Intel manual says the "index is saturated to OperandSize-1". The pseudocode in the same manual indicates no bits will be zeroed for this case.

I think this is still missing cases where the subtract portion is an 8-bit operation.

Differential Revision: https://reviews.llvm.org/D32616
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrInfo.td (diff)llvm-revision.src/llvm/trunk/lib/Target/X86/X86InstrInfo.td
The file was modified/llvm/trunk/test/CodeGen/X86/bmi.ll (diff)llvm-revision.src/llvm/trunk/test/CodeGen/X86/bmi.ll
Revision 302548 by spatel:
[InstCombineCasts] Fix checks in sext->lshr->trunc pattern.

The comment says to avoid the case where zero bits are shifted into the truncated value,
but the code checks that the shift is smaller than the truncated value instead of the
number of bits added by the sign extension. Fixing this allows a shift by more than the
value size to be introduced, which is undefined behavior, so the shift is capped at the
value size minus one, which has the expected behavior of filling the value with the sign
bit.

Patch by Jacob Young!

Differential Revision: https://reviews.llvm.org/D32285
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineCasts.cpp (diff)llvm-revision.src/llvm/trunk/lib/Transforms/InstCombine/InstCombineCasts.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/cast.ll (diff)llvm-revision.src/llvm/trunk/test/Transforms/InstCombine/cast.ll
Revision 302547 by petarj:
[mips] Impose a threshold for coercion of aggregates

Modified MipsABIInfo::classifyArgumentType so that it now coerces aggregate
structures only if the size of said aggregate is less than 16/64 bytes,
depending on the ABI.

Patch by Stefan Maksimovic.

Differential Revision: https://reviews.llvm.org/D32900
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/TargetInfo.cpp (diff)llvm-revision.src/cfe/trunk/lib/CodeGen/TargetInfo.cpp
The file was added/cfe/trunk/test/CodeGen/mips-aggregate-arg.cllvm-revision.src/cfe/trunk/test/CodeGen/mips-aggregate-arg.c
Revision 302546 by guyblank:
VX512] Only look at lower bit in constant scalar masks

for scalar masked instructions only the lower bit of the mask is relevant. so for constant masks we should either do an unmasked operation or no operation, depending on the value of the lower bit.
This patch handles cases where the lower bit is '1'.

Differential Revision: https://reviews.llvm.org/D32805
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-scalar_mask.ll (diff)llvm-revision.src/llvm/trunk/test/CodeGen/X86/avx512-scalar_mask.ll
Revision 302545 by arphaman:
[CodeCompletion] Complete platform names in @available expressions

rdar://32074504
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Sema/Sema.h (diff)llvm-revision.src/cfe/trunk/include/clang/Sema/Sema.h
The file was modified/cfe/trunk/lib/Parse/ParseExpr.cpp (diff)llvm-revision.src/cfe/trunk/lib/Parse/ParseExpr.cpp
The file was modified/cfe/trunk/lib/Sema/SemaCodeComplete.cpp (diff)llvm-revision.src/cfe/trunk/lib/Sema/SemaCodeComplete.cpp
The file was added/cfe/trunk/test/Index/complete-available.mllvm-revision.src/cfe/trunk/test/Index/complete-available.m
Revision 302544 by rnk:
Re-land "Use the frame index side table for byval and inalloca arguments"

This re-lands r302483. It was not the cause of PR32977.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp (diff)llvm-revision.src/llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp (diff)llvm-revision.src/llvm/trunk/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)llvm-revision.src/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (diff)llvm-revision.src/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/2010-01-18-DbgValue.ll (diff)llvm-revision.src/llvm/trunk/test/CodeGen/X86/2010-01-18-DbgValue.ll
The file was removed/llvm/trunk/test/CodeGen/X86/2012-11-30-handlemove-dbg.llllvm-revision.src/llvm/trunk/test/CodeGen/X86/2012-11-30-handlemove-dbg.ll
The file was modified/llvm/trunk/test/CodeGen/X86/dbg-baseptr.ll (diff)llvm-revision.src/llvm/trunk/test/CodeGen/X86/dbg-baseptr.ll
The file was added/llvm/trunk/test/DebugInfo/X86/dbg-declare-inalloca.llllvm-revision.src/llvm/trunk/test/DebugInfo/X86/dbg-declare-inalloca.ll
Revision 302543 by rnk:
Re-land "Don't add DBG_VALUE instructions for static allocas in dbg.declare"

This re-lands commit r302461. It was not the cause of PR32977.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)llvm-revision.src/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was removed/llvm/trunk/test/CodeGen/X86/2012-11-30-misched-dbg.llllvm-revision.src/llvm/trunk/test/CodeGen/X86/2012-11-30-misched-dbg.ll
The file was removed/llvm/trunk/test/CodeGen/X86/2012-11-30-regpres-dbg.llllvm-revision.src/llvm/trunk/test/CodeGen/X86/2012-11-30-regpres-dbg.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/local-variables.ll (diff)llvm-revision.src/llvm/trunk/test/DebugInfo/COFF/local-variables.ll
Revision 302542 by hans:
Revert r302476 "Update testcase for upstream LLVM changes."

That test update was for r302469, which was reverted in r302533 due to PR32977.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/CodeGenCXX/linetable-virtual-variadic.cpp (diff)llvm-revision.src/cfe/trunk/test/CodeGenCXX/linetable-virtual-variadic.cpp
Revision 302541 by rnk:
Allow compiler-rt to find lld and libc++ parallel to LLVM, as in the monorepo
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/CMakeLists.txt (diff)llvm-revision.src/compiler-rt/trunk/CMakeLists.txt