Skip to content

Fix rdar://64538073 #3099

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 10,000 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
10000 commits
Select commit Hold shift + click to select a range
e87fdd9
Merge commit '0d3e4d9d4d2c' from llvm.org/main into next
Jul 26, 2021
1558bb8
[Object] make SourceMgr available to MCContext during inline asm symbols
Jul 26, 2021
39da0cb
Merge commit '1558bb80c01b' from llvm.org/main into next
Jul 26, 2021
ae6b400
[Preprocessor] Implement -fminimize-whitespace.
Meinersbur Jul 26, 2021
e4ff089
Merge commit 'ae6b40000238' from llvm.org/main into next
Jul 26, 2021
0425332
[mlir] Added new RegionBranchTerminatorOpInterface and adapted uses o…
dfki-mako Jul 23, 2021
64bc830
Merge commit '0425332015f4' from llvm.org/main into next
Jul 26, 2021
cdcc354
[ORC][ORC-RT] Add initial Objective-C and Swift support to MachOPlatf…
lhames Jul 26, 2021
4b5a48e
Merge commit 'cdcc35476833' from llvm.org/main into next
Jul 26, 2021
47afd43
[libc] fix LibcUnitTestMain when building with shared libraries
gchatelet Jul 26, 2021
dcd8d50
Merge commit '47afd43eaa9b' from llvm.org/main into next
Jul 26, 2021
eb6c63c
[mlir] Fix RankedTensorType::walkImmediateSubElements method
Jul 7, 2021
ddd397a
Merge commit 'eb6c63cb0b6e' from llvm.org/main into next
Jul 26, 2021
93fe84d
[libomptarget][nfc] Squash unused variable warning
JonChesterfield Jul 26, 2021
1d56ed9
Merge commit '93fe84d32fea' from llvm.org/main into next
Jul 26, 2021
2a613a7
[libomptarget] Build amdgpu plugin without hsa
JonChesterfield Jul 26, 2021
e69f71a
Merge commit '2a613a779044' from llvm.org/main into next
Jul 26, 2021
0a3c796
Revert "Revert D106562 "[clangd] Get rid of arg adjusters in CommandM…
kadircet Jul 24, 2021
b376c11
Merge commit '0a3c7960cba1' from llvm.org/main into next
Jul 26, 2021
f924a3d
[SelectionDAG] Support scalable-vector splats in yet more cases
frasercrmck Jul 22, 2021
4810df4
Merge commit 'f924a3d47492' from llvm.org/main into next
Jul 26, 2021
0aff179
[Analysis] Add simple cost model for strict (in-order) reductions
david-arm Jul 7, 2021
6297390
Merge commit '0aff1798b572' from llvm.org/main into next
Jul 26, 2021
e6ff917
[AArch64][AsmParser] NFC: Parser.getTok().getLoc() -> getLoc()
c-rhodes Jul 26, 2021
c8f9a82
Merge commit 'e6ff9179cee4' from llvm.org/main into next
Jul 26, 2021
e9274af
Revert "[clangd] Avoid range-loop init-list lifetime subtleties."
sam-mccall Jul 26, 2021
2c89bee
Merge commit 'e9274af71893' from llvm.org/main into next
Jul 26, 2021
f64e251
[X86][SSE] Don't scrub address math from interleaved shuffle tests
RKSimon Jul 26, 2021
5ed3a2d
Merge commit 'f64e25156020' from llvm.org/main into next
Jul 26, 2021
c8472db
[X86][AVX] Prefer vinsertf128 to vperm2f128 on AVX1 targets
RKSimon Jul 26, 2021
5882983
Merge commit 'c8472db0a887' from llvm.org/main into next
Jul 26, 2021
73e4e9c
[AArch64][SVE] Improve code generation for vector_splice for Imm == -1
CarolineConcatto Jul 6, 2021
7a096c5
Merge commit '73e4e9cd007a' from llvm.org/main into next
Jul 26, 2021
b2a5f00
Fix test failures caused by 0aff1798b5721d5f95d16f465b99d357012bb8d1
david-arm Jul 26, 2021
a830717
Merge commit 'b2a5f0029f27' from llvm.org/main into next
Jul 26, 2021
0bfc26e
[SVE][AArch64] Improve code generation for vector_splice for Imm > 0
CarolineConcatto Jul 19, 2021
5c58fc3
Merge commit '0bfc26e3a4bf' from llvm.org/main into next
Jul 26, 2021
20b0fa9
[SVE] Add support for folding for select + masked loads
DylanFleming-arm Jul 26, 2021
5ab173e
Merge commit '20b0fa91c9ee' from llvm.org/main into next
Jul 26, 2021
d995d63
[VPlan] Use stored value from recipes for interleave groups.
fhahn Jul 26, 2021
2a08e6a
Merge commit 'd995d6376762' from llvm.org/main into next
Jul 26, 2021
46c0366
[Inliner] Make the CallPenalty configurable
flip1995 Jul 14, 2021
88d965e
Merge commit '46c03668774c' from llvm.org/main into next
Jul 26, 2021
8a8d01d
[NFC] Change VFShape so it contains an ElementCount rather than seper…
paulwalker-arm Jul 24, 2021
d4d5d0f
Merge commit '8a8d01d58c14' from llvm.org/main into next
Jul 26, 2021
a053afe
[SLP]Fix costs calculations.
alexey-bataev Jul 22, 2021
6f067c1
Merge commit 'a053afed4989' from llvm.org/main into next
Jul 26, 2021
539437e
[mlir] split type conversion to two lines for GCC's sake
tpopp Jul 26, 2021
704ef78
Merge commit '539437e288f2' from llvm.org/main into next
Jul 26, 2021
bf28111
[AArch65][SVE] Remove vector_splice from AddedComplexity pattern
CarolineConcatto Jul 26, 2021
089173f
Merge commit 'bf28111ebdb7' from llvm.org/main into next
Jul 26, 2021
d7cb2a0
Revert "[SLP]Fix costs calculations."
alexey-bataev Jul 26, 2021
730134d
Merge commit 'd7cb2a079677' from llvm.org/main into next
Jul 26, 2021
e484e1a
[SVE] Fix casts to <FixedVectorType> in truncateToMinimalBitwidths
kmclaughlin-arm Jul 26, 2021
beae05b
Merge commit 'e484e1ae0332' from llvm.org/main into next
Jul 26, 2021
ffb3277
[SimplifyCFG] Improve store speculation check
nikic Jul 21, 2021
a473f22
Merge commit 'ffb3277b0036' from llvm.org/main into next
Jul 26, 2021
a487a49
AArch64: support i128 (& larger) returns in GlobalISel
TNorthover Jul 26, 2021
0e11455
Merge commit 'a487a49acc5a' from llvm.org/main into next
Jul 26, 2021
010f8e3
[ARM] Ensure correct regclass in distributing postinc
davemgreen Jul 26, 2021
cce2cd5
Merge commit '010f8e305705' from llvm.org/main into next
Jul 26, 2021
9ac1065
[AMDGPU] Fix MMO for raw/struct buffer access with non-constant offset
jayfoad Jul 19, 2021
9059d87
Merge commit '9ac10658aeda' from llvm.org/main into next
Jul 26, 2021
683b9ed
[AMDGPU] Pre-commit global-isel test case for D106451
jayfoad Jul 21, 2021
0412aec
Merge commit '683b9ed0d593' from llvm.org/main into next
Jul 26, 2021
59f6865
[AMDGPU][GISel] Fix MMO for raw/struct buffer access with non-constan…
jayfoad Jul 21, 2021
7f4d494
Merge commit '59f6865231ff' from llvm.org/main into next
Jul 26, 2021
87ed73f
[llvm-readobj] Display multiple function names for stack size entries
gbreynoo Jul 26, 2021
60e7d85
Merge commit '87ed73fe6e01' from llvm.org/main into next
Jul 26, 2021
8160016
[OpenCL] Change default standard version to CL1.2
Jul 26, 2021
7a33df7
Merge commit '81600160b3f9' from llvm.org/main into next
Jul 26, 2021
6ca48ef
[SLP]Fix costs calculations.
alexey-bataev Jul 26, 2021
86bc908
Merge commit '6ca48efcf6e1' from llvm.org/main into next
Jul 26, 2021
9366450
[LV] Add test to store a first-order rec via interleave group.
fhahn Jul 26, 2021
42c1329
Merge commit '93664503be6b' from llvm.org/main into next
Jul 26, 2021
f86694c
[InstrRef][AArch64][1/4] Accept constant physreg variable locations
jmorse Jul 26, 2021
27ea5da
Merge commit 'f86694cb808f' from llvm.org/main into next
Jul 26, 2021
4761321
[Analyzer][solver][NFC] print constraints deterministically (ordered …
Jul 20, 2021
d365e6e
Merge commit '4761321d49db' from llvm.org/main into next
Jul 26, 2021
404f0d4
Simplify away some SmallVector copies. NFCI.
d0k Jul 26, 2021
d2bfb47
Merge commit '404f0d4f7cc7' from llvm.org/main into next
Jul 26, 2021
3314685
[IR] Consider non-willreturn as side effect (PR50511)
nikic Jul 21, 2021
e0c31a5
Merge commit '33146857e984' from llvm.org/main into next
Jul 26, 2021
1139fd4
[libc++][ci] Detect not committed generated files.
mordante Jul 22, 2021
ae2411a
Merge commit '1139fd4270c7' from llvm.org/main into next
Jul 26, 2021
7a1e73f
Recommit "[VPlan] Add recipe for first-order rec phis, make splicing …
fhahn Jul 26, 2021
4c2f81b
Merge commit '7a1e73f0b9fc' from llvm.org/main into next
Jul 26, 2021
8cd8120
[SystemZ] Add support for new cpu architecture - arch14
uweigand Jul 20, 2021
75f8c44
Merge commit '8cd8120a7b5d' from llvm.org/main into next
Jul 26, 2021
3274cdc
[Clang][OpenMP] Remove the mandatory flush for capture for OpenMP 5.1
shiltian Jul 26, 2021
78dc96f
Merge commit '3274cdc83ecd' from llvm.org/main into next
Jul 26, 2021
81eafb8
[AArch64][SVE] Break false dependencies for inactive lanes of unary o…
brads55 Jul 8, 2021
1a4f5cf
Merge commit '81eafb8a37c9' from llvm.org/main into next
Jul 26, 2021
981e9dc
[LV] Don't assume isScalarAfterVectorization if one of the uses needs…
sdesmalen-arm Jul 26, 2021
d5af704
Merge commit '981e9dce5482' from llvm.org/main into next
Jul 26, 2021
0d3807b
[MergeICmps] Separate out BCECmp and use Optional (NFC)
nikic Jul 26, 2021
6eba9dd
Merge commit '0d3807b365e5' from llvm.org/main into next
Jul 26, 2021
d826026
[SimplifyLibCalls] reduce code duplication; NFC
rotateright Jul 26, 2021
39a8a72
Merge commit 'd8260269c32c' from llvm.org/main into next
Jul 26, 2021
87d604f
[SimplifyLibCalls] avoid crash on pointer math
rotateright Jul 26, 2021
9f37a53
Merge commit '87d604ffe494' from llvm.org/main into next
Jul 26, 2021
3ca6dea
[libc++][NFC] Change a few instances of > > to >> in C++20 code
ldionne Jul 26, 2021
2731bfc
Merge commit '3ca6dea05dec' from llvm.org/main into next
Jul 26, 2021
3b77e27
[SVE] Use reg+reg addressing mode for immediate offsets.
paulwalker-arm Jul 22, 2021
8161cd7
Merge commit '3b77e2737c85' from llvm.org/main into next
Jul 26, 2021
0c99784
[AsmParser] Remove MDRef (NFC)
kazutakahirata Jul 26, 2021
64ea640
Merge commit '0c9978473e53' from llvm.org/main into next
Jul 26, 2021
c691651
[MergeICmps] Try to fix MSVC build failure
nikic Jul 26, 2021
00073ad
Merge commit 'c691651c5348' from llvm.org/main into next
Jul 26, 2021
c0da287
[yaml2obj][MachO] Rename PayloadString to Content
MaskRay Jul 26, 2021
206ac4a
Merge commit 'c0da287c30c9' from llvm.org/main into next
Jul 26, 2021
792c206
[llvm-objcopy] Drop GRP_COMDAT if the group signature is localized
MaskRay Jul 26, 2021
f525396
Merge commit '792c206e2b63' from llvm.org/main into next
Jul 26, 2021
f921bf6
[MergeICmps] Collect block instructions once (NFC)
nikic Jul 26, 2021
fcfb839
Merge commit 'f921bf6049df' from llvm.org/main into next
Jul 26, 2021
e8a64e5
[clang][pp] adds '#pragma include_instead'
cjdb Jul 22, 2021
9665407
Merge commit 'e8a64e549126' from llvm.org/main into next
Jul 26, 2021
b9051ba
[LV] Remove assert that VF cannot be scalable in setCostBasedWidening…
sdesmalen-arm Jul 26, 2021
beaab4f
Merge commit 'b9051ba84836' from llvm.org/main into next
Jul 26, 2021
77c5e6b
[Analysis] Fix getOrderedReductionCost to call target's getArithmetic…
RKSimon Jul 26, 2021
e9084e8
Merge commit '77c5e6ba900a' from llvm.org/main into next
Jul 26, 2021
fbaf7f0
[libc++] Add range_size_t
ldionne Jul 23, 2021
3828122
Merge commit 'fbaf7f0bc768' from llvm.org/main into next
Jul 26, 2021
240dde9
[PowerPC] Change altivec indexed load/store builtins argument type
ecnelises Jul 26, 2021
ffa1dd6
Merge commit '240dde948252' from llvm.org/main into next
Jul 26, 2021
31e7551
[DebugInfo] Correctly update debug users of SSA values in tail duplic…
SLTozer Jul 26, 2021
ef2fb47
Merge commit '31e75512174e' from llvm.org/main into next
Jul 26, 2021
6d753b0
[LAA] Remove RuntimeCheckingPtrGroup::RtCheck member (NFC).
fhahn Jul 26, 2021
dee61c9
Merge commit '6d753b0751b1' from llvm.org/main into next
Jul 26, 2021
fbe6eac
[X86][AVX] Add PR50053 test case
RKSimon Jul 26, 2021
96f2f56
Merge commit 'fbe6eac8bd65' from llvm.org/main into next
Jul 26, 2021
b71b250
[test] Fix PayloadString: in lldb tests
MaskRay Jul 26, 2021
b677a5c
Merge commit 'b71b25008f2a' from llvm.org/main into next
Jul 26, 2021
055fa44
[mlir][tosa] Disable tosa shape verification between operands/results
rsuderman Jul 22, 2021
9e09d59
Merge commit '055fa446fd44' from llvm.org/main into next
Jul 26, 2021
6b9aba4
[WebAssembly] Improve pseudocode in LowerEmscriptenEHSjLj
aheejin Jul 22, 2021
d551489
Merge commit '6b9aba43a239' from llvm.org/main into next
Jul 26, 2021
016ae7d
[libc] add scudo wrappers to llvm libc
michaelrj-google Jul 23, 2021
b34e4fa
Merge commit '016ae7df95f2' from llvm.org/main into next
Jul 26, 2021
dec3410
[GlobalISel] Add combine for merge(unmerge) and use AArch64 postlegal…
aemerson Jul 25, 2021
b74ba65
Merge commit 'dec34104bfa5' from llvm.org/main into next
Jul 26, 2021
0d41d21
[AArch64][GlobalISel] Enable some select combines after legalization.
aemerson Jul 25, 2021
a833b44
Merge commit '0d41d21929d4' from llvm.org/main into next
Jul 26, 2021
5c486ce
[LLVM IR] Allow volatile stores to trap.
efriedma-quic Jul 26, 2021
fb870e2
Merge commit '5c486ce04db4' from llvm.org/main into next
Jul 26, 2021
6af8d36
[AArch4][GlobalISel] Post-legalize combine s64 = G_MERGE s32, 0 -> G_…
aemerson Jul 25, 2021
656a7aa
Merge commit '6af8d360546e' from llvm.org/main into next
Jul 26, 2021
a98f394
[LLDB][GUI] Resolve paths in file/directory fields
OmarEmaraDev Jul 26, 2021
485ea36
Merge commit 'a98f394e81f4' from llvm.org/main into next
Jul 26, 2021
2a7ee6b
[FPEnv][InstSimplify] Enable more folds for constrained fadd
kpneal Jul 26, 2021
6ab34fa
Merge commit '2a7ee6b5c124' from llvm.org/main into next
Jul 26, 2021
cf54424
[lld][WebAssembly] Do not remove name section with --strip-debug
dschuff Jul 23, 2021
c34929a
Merge commit 'cf54424a46ff' from llvm.org/main into next
Jul 26, 2021
1c50a5d
[PowerPC] Implement partial vector ld/st builtins for XL compatibility
nemanjai Jul 26, 2021
acd2d73
Merge commit '1c50a5da364f' from llvm.org/main into next
Jul 26, 2021
b31080c
[compiler-rt][CMake][arm64] Use a custom target for symlinking LSE so…
tambry Jul 21, 2021
e76d1fd
Merge commit 'b31080c59624' from llvm.org/main into next
Jul 26, 2021
14e356d
[TypePromotion] Remove redundant if. NFC
topperc Jul 26, 2021
ab99cea
Merge commit '14e356d121cd' from llvm.org/main into next
Jul 26, 2021
b0402a3
[amdgpu] Add 64-bit PC support when expanding unconditional branches.
darkbuck Jul 18, 2021
24c5719
Merge commit 'b0402a35fc88' from llvm.org/main into next
Jul 26, 2021
0fb16d5
Fix clang regression test after 5c486ce0
efriedma-quic Jul 26, 2021
c55c6bb
Merge commit '0fb16d5ad126' from llvm.org/main into next
Jul 26, 2021
069428b
[libc++] Set the target triple by default in the standalone build
ldionne Jul 26, 2021
9b7fcf9
Merge commit '069428b6f73b' from llvm.org/main into next
Jul 26, 2021
7b28c5d
[libc++] Implement the output_iterator and output_range concepts
ldionne Jul 23, 2021
566c475
Merge commit '7b28c5d3765c' from llvm.org/main into next
Jul 26, 2021
e757a3b
[OpenMP][NFC] Remove unncessary capture in RAII struct
jhuber6 Jul 26, 2021
385aa99
Merge commit 'e757a3b05fd9' from llvm.org/main into next
Jul 26, 2021
2d78895
[PowerPC] Add implicit-def RM to instructions mtfsb[01]
lei137 Jul 22, 2021
0086efa
Merge commit '2d788959edda' from llvm.org/main into next
Jul 26, 2021
3230493
Fix clang debug info irgen of i128 enums
rnk Jul 22, 2021
2a74309
Merge commit '323049329939' from llvm.org/main into next
Jul 26, 2021
d56e698
[SimplifyCFG] Remove stale comment after d7378259aa, NFC
rnk Jul 26, 2021
442ced2
Merge commit 'd56e6985528b' from llvm.org/main into next
Jul 26, 2021
e42edce
[lldb][NFC] Delete unused and commented out DWARF constants
bulbazord Jul 21, 2021
021b54c
Merge commit 'e42edce4a349' from llvm.org/main into next
Jul 26, 2021
e745277
[AArch64] NFC: Make some AArch64-SVE LoopVectorize tests generic.
sdesmalen-arm Jul 26, 2021
229161e
Merge commit 'e745277012ec' from llvm.org/main into next
Jul 26, 2021
13ccb09
[LV] Don't let ForceTargetInstructionCost override Invalid cost.
sdesmalen-arm Jul 26, 2021
9708efc
Merge commit '13ccb097258a' from llvm.org/main into next
Jul 26, 2021
64a1581
[PowerPC]Add addex instruction definition and MC tests
lei137 Jul 23, 2021
dfca25f
Merge commit '64a15817a017' from llvm.org/main into next
Jul 26, 2021
d0c7d4d
[ARM] Fixup vst4 test. NFC
davemgreen Jul 26, 2021
18dbbc0
Merge commit 'd0c7d4d8a066' from llvm.org/main into next
Jul 26, 2021
dead50d
[OpenMP][NFC] Fix a few typos in OpenMP documentation
jhuber6 Jul 26, 2021
122b5ce
Merge commit 'dead50d4427c' from llvm.org/main into next
Jul 26, 2021
f84c70a
[CodeView] Saturate values bigger than supported by APInt.
mizvekov Jul 1, 2021
57bc6d2
Merge commit 'f84c70a37939' from llvm.org/main into next
Jul 26, 2021
20555a1
[clang] P2266 implicit moves STL workaround
mizvekov Jul 13, 2021
717010b
Merge commit '20555a15a596' from llvm.org/main into next
Jul 26, 2021
7c5f104
[SimplifyCFG] Drop support for duplicating ret's into uncond predeces…
LebedevRI Jul 26, 2021
7c20f2d
Merge commit '7c5f104e4549' from llvm.org/main into next
Jul 26, 2021
08efc2e
[SimplifyCFG] Drop support for simplifying cond branch to two (differ…
LebedevRI Jul 26, 2021
a9dc5fe
Merge commit '08efc2e68d5f' from llvm.org/main into next
Jul 26, 2021
1901c98
[SimplifyCFG] SwitchToLookupTable(): don't increase ret count
LebedevRI Jul 26, 2021
dc3d2c6
Merge commit '1901c98dd81b' from llvm.org/main into next
Jul 26, 2021
cbad576
[flang][msvc] Fix external-io unittest.
Meinersbur Jul 26, 2021
8defebf
Merge commit 'cbad57613e76' from llvm.org/main into next
Jul 26, 2021
d297211
[OpenMP] Add a driver flag to enable the new device runtime library
jhuber6 Jul 26, 2021
421c89c
Merge commit 'd2972116923a' from llvm.org/main into next
Jul 26, 2021
e95cd94
[libc++abi/unwind] NFC: Normalize how we set target properties
ldionne Jul 26, 2021
edad53d
Merge commit 'e95cd94f7edf' from llvm.org/main into next
Jul 26, 2021
25666a7
[libc++] Remove "pass by const value" in <random>. NFCI.
Quuxplusone Jul 24, 2021
7c05750
Merge commit '25666a74c5af' from llvm.org/main into next
Jul 26, 2021
41b17c4
[libc++] Fix signed overflow inside ranges::advance.
Quuxplusone Jul 24, 2021
d1a57ff
Merge commit '41b17c444df6' from llvm.org/main into next
Jul 26, 2021
c285a11
[WebAssembly] Make Emscripten EH work with Emscripten SjLj
aheejin Jul 17, 2021
1a86925
Merge commit 'c285a11efdb0' from llvm.org/main into next
Jul 26, 2021
fed25dd
[LLDB][GUI] Expand selected thread tree item by default
OmarEmaraDev Jul 26, 2021
1857236
Merge commit 'fed25ddc1c3d' from llvm.org/main into next
Jul 26, 2021
ed5b4db
[LLDB][GUI] Add Arch Field
OmarEmaraDev Jul 26, 2021
06c0bbb
Merge commit 'ed5b4dbd3952' from llvm.org/main into next
Jul 26, 2021
af00019
[OpenMP] Always inline the OpenMP outlined function
jhuber6 Jul 26, 2021
20785bc
Merge commit 'af000197c421' from llvm.org/main into next
Jul 26, 2021
a48ee9f
[WebAssembly] Remove dominator dependency in WasmEHPrepare (NFC)
aheejin Jul 26, 2021
3641e0d
Merge commit 'a48ee9f25581' from llvm.org/main into next
Jul 26, 2021
c658b47
[GlobalISel] Add a constant folding combine.
aemerson Jul 25, 2021
f28179d
Merge commit 'c658b472f3e6' from llvm.org/main into next
Jul 26, 2021
8f41431
[flang] Disallow BOZ literal constants as arguments of implicit inter…
psteinfeld Jul 26, 2021
97ee400
Merge commit '8f41431654fe' from llvm.org/main into next
Jul 26, 2021
c5d8bd5
[llvm-objcopy] Fix section group flag read/write when operating on a …
MaskRay Jul 26, 2021
d8f565b
Merge commit 'c5d8bd5a35cb' from llvm.org/main into next
Jul 26, 2021
172051a
[AArch64][GlobalISel] Add identity combines to post-legal combiner.
aemerson Jul 26, 2021
3443373
Merge commit '172051a1f4b1' from llvm.org/main into next
Jul 26, 2021
1e1b570
[libc++] Fix spacing in <vector>. NFCI.
Quuxplusone Jul 26, 2021
f646654
Merge commit '1e1b5706c3f5' from llvm.org/main into next
Jul 26, 2021
58aa388
[MLIR][SCF][NFC] Fix typo in documentation of scf.while
jurahul Jul 26, 2021
58854b6
Merge commit '58aa3881bac6' from llvm.org/main into next
Jul 26, 2021
b50fb58
[compiler-rt][hwasan][fuchsia] Define shadow bound globals
PiJoules Jul 9, 2021
a4c7df2
Merge commit 'b50fb58695b4' from llvm.org/main into next
Jul 26, 2021
3c32695
[lldb] [gdb-remote client] Avoid zero padding PID/TID in H packet
mgorny Jul 26, 2021
f1ca31e
Merge commit '3c3269559ba9' from llvm.org/main into next
Jul 26, 2021
a9b114c
Disable the new enum i128 test under ASan, it uncovers an existing leak
rnk Jul 26, 2021
579cf81
Merge commit 'a9b114c5dd68' from llvm.org/main into next
Jul 26, 2021
71af002
[compiler-rt][hwasan][fuchsia] Implement InitializeOsSupport
PiJoules Jul 8, 2021
5bb9033
Merge commit '71af002d151e' from llvm.org/main into next
Jul 26, 2021
beff86e
Build libSupport with -Werror=global-constructors (NFC)
joker-eph Jul 16, 2021
53146d4
Merge commit 'beff86e8ff42' from llvm.org/main into next
Jul 26, 2021
f9f5648
[DebugInfo] Use per-enumerator signedness for DIEnumerator
rnk Jul 26, 2021
e6a2915
Merge commit 'f9f56488e02d' from llvm.org/main into next
Jul 26, 2021
45951ad
[PowerPC] Add pwr7 and pwr10 support to IBM MASSV pass on AIX
msdataei Jul 26, 2021
9895f2e
Merge commit '45951ad3231c' from llvm.org/main into next
Jul 26, 2021
b49a3bf
[compiler-rt][hwasan][fuchsia] Implement TagMemoryAligned for fuchsia
PiJoules Jul 8, 2021
c530c06
Merge commit 'b49a3bf7c094' from llvm.org/main into next
Jul 26, 2021
97e95fe
[AArch64][GlobalISel] Legalize ctpop s128
jroelofs Jul 21, 2021
a26b671
Merge commit '97e95fea53fc' from llvm.org/main into next
Jul 26, 2021
d14aa82
[clang][clang-scan-deps] Add an experimental C API for returning the …
ahatanaka Jul 9, 2021
0759a5b
Address review comments
ahatanaka Jul 9, 2021
6d94900
Address review comments
ahatanaka Jul 27, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
3 changes: 1 addition & 2 deletions apple-ci/clang/am/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,5 @@ xcrun cmake -G Ninja \
-DCMAKE_C_COMPILER=$HOST_COMPILER_PATH/clang \
-DCMAKE_CXX_COMPILER=$HOST_COMPILER_PATH/clang++ \
-DLLVM_TARGETS_TO_BUILD="X86;ARM;AArch64" \
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt;lldb" \
-DLLDB_INCLUDE_TESTS=OFF \
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt" \
$SRC_DIR/llvm && $NINJA
3 changes: 3 additions & 0 deletions apple-llvm-config/am/swift-master-next.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"upstream": "apple/master"
}
195 changes: 150 additions & 45 deletions clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -469,19 +469,19 @@ struct MixData {
return *this;
}

/// Add the specified qualifiers to the common type in the Mix.
MixData qualify(Qualifiers Quals) const {
SplitQualType Split = CommonType.split();
Split.Quals.addQualifiers(Quals);
QualType CommonType{Split.Ty,
static_cast<unsigned>(Split.Quals.getAsOpaqueValue())};
template <class F> MixData withCommonTypeTransformed(F &&Func) const {
if (CommonType.isNull())
return *this;

QualType NewCommonType = Func(CommonType);

if (CreatedFromOneWayConversion) {
MixData M{Flags, Conversion};
M.CommonType = CommonType;
M.CommonType = NewCommonType;
return M;
}
return {Flags, CommonType, Conversion, ConversionRTL};

return {Flags, NewCommonType, Conversion, ConversionRTL};
}
};

Expand Down Expand Up @@ -544,13 +544,13 @@ struct MixableParameterRange {
/// Helper enum for the recursive calls in the modelling that toggle what kinds
/// of implicit conversions are to be modelled.
enum class ImplicitConversionModellingMode : unsigned char {
/// No implicit conversions are modelled.
///< No implicit conversions are modelled.
None,

/// The full implicit conversion sequence is modelled.
///< The full implicit conversion sequence is modelled.
All,

/// Only model a unidirectional implicit conversion and within it only one
///< Only model a unidirectional implicit conversion and within it only one
/// standard conversion sequence.
OneWaySingleStandardOnly
};
Expand All @@ -567,7 +567,58 @@ approximateImplicitConversion(const TheCheck &Check, QualType LType,
ImplicitConversionModellingMode ImplicitMode);

static inline bool isUselessSugar(const Type *T) {
return isa<DecayedType, ElaboratedType, ParenType>(T);
return isa<AttributedType, DecayedType, ElaboratedType, ParenType>(T);
}

namespace {

struct NonCVRQualifiersResult {
/// True if the types are qualified in a way that even after equating or
/// removing local CVR qualification, even if the unqualified types
/// themselves would mix, the qualified ones don't, because there are some
/// other local qualifiers that are not equal.
bool HasMixabilityBreakingQualifiers;

/// The set of equal qualifiers between the two types.
Qualifiers CommonQualifiers;
};

} // namespace

/// Returns if the two types are qualified in a way that ever after equating or
/// removing local CVR qualification, even if the unqualified types would mix,
/// the qualified ones don't, because there are some other local qualifiers
/// that aren't equal.
static NonCVRQualifiersResult
getNonCVRQualifiers(const ASTContext &Ctx, QualType LType, QualType RType) {
LLVM_DEBUG(llvm::dbgs() << ">>> getNonCVRQualifiers for LType:\n";
LType.dump(llvm::dbgs(), Ctx); llvm::dbgs() << "\nand RType:\n";
RType.dump(llvm::dbgs(), Ctx); llvm::dbgs() << '\n';);
Qualifiers LQual = LType.getLocalQualifiers(),
RQual = RType.getLocalQualifiers();

// Strip potential CVR. That is handled by the check option QualifiersMix.
LQual.removeCVRQualifiers();
RQual.removeCVRQualifiers();

NonCVRQualifiersResult Ret;
Ret.CommonQualifiers = Qualifiers::removeCommonQualifiers(LQual, RQual);

LLVM_DEBUG(llvm::dbgs() << "--- hasNonCVRMixabilityBreakingQualifiers. "
"Removed common qualifiers: ";
Ret.CommonQualifiers.print(llvm::dbgs(), Ctx.getPrintingPolicy());
llvm::dbgs() << "\n\tremaining on LType: ";
LQual.print(llvm::dbgs(), Ctx.getPrintingPolicy());
llvm::dbgs() << "\n\tremaining on RType: ";
RQual.print(llvm::dbgs(), Ctx.getPrintingPolicy());
llvm::dbgs() << '\n';);

// If there are no other non-cvr non-common qualifiers left, we can deduce
// that mixability isn't broken.
Ret.HasMixabilityBreakingQualifiers =
LQual.hasQualifiers() || RQual.hasQualifiers();

return Ret;
}

/// Approximate the way how LType and RType might refer to "essentially the
Expand All @@ -586,12 +637,6 @@ calculateMixability(const TheCheck &Check, QualType LType, QualType RType,
LLVM_DEBUG(llvm::dbgs() << ">>> calculateMixability for LType:\n";
LType.dump(llvm::dbgs(), Ctx); llvm::dbgs() << "\nand RType:\n";
RType.dump(llvm::dbgs(), Ctx); llvm::dbgs() << '\n';);

// Certain constructs match on the last catch-all getCanonicalType() equality,
// which is perhaps something not what we want. If this variable is true,
// the canonical type equality will be ignored.
bool RecursiveReturnDiscardingCanonicalType = false;

if (LType == RType) {
LLVM_DEBUG(llvm::dbgs() << "<<< calculateMixability. Trivial equality.\n");
return {MixFlags::Trivial, LType};
Expand All @@ -613,23 +658,32 @@ calculateMixability(const TheCheck &Check, QualType LType, QualType RType,
Check, LType, RType.getSingleStepDesugaredType(Ctx), Ctx, ImplicitMode);
}

const auto *LLRef = LType->getAs<LValueReferenceType>();
const auto *RLRef = RType->getAs<LValueReferenceType>();
if (LLRef && RLRef) {
LLVM_DEBUG(llvm::dbgs() << "--- calculateMixability. LHS and RHS are &.\n");

return calculateMixability(Check, LLRef->getPointeeType(),
RLRef->getPointeeType(), Ctx, ImplicitMode)
.withCommonTypeTransformed(
[&Ctx](QualType QT) { return Ctx.getLValueReferenceType(QT); });
}
// At a particular call site, what could be passed to a 'T' or 'const T' might
// also be passed to a 'const T &' without the call site putting a direct
// side effect on the passed expressions.
if (const auto *LRef = LType->getAs<LValueReferenceType>()) {
if (LLRef) {
LLVM_DEBUG(llvm::dbgs() << "--- calculateMixability. LHS is &.\n");
return isLRefEquallyBindingToType(Check, LRef, RType, Ctx, false,
return isLRefEquallyBindingToType(Check, LLRef, RType, Ctx, false,
ImplicitMode) |
MixFlags::ReferenceBind;
}
if (const auto *RRef = RType->getAs<LValueReferenceType>()) {
if (RLRef) {
LLVM_DEBUG(llvm::dbgs() << "--- calculateMixability. RHS is &.\n");
return isLRefEquallyBindingToType(Check, RRef, LType, Ctx, true,
return isLRefEquallyBindingToType(Check, RLRef, LType, Ctx, true,
ImplicitMode) |
MixFlags::ReferenceBind;
}

// Dissolve typedefs after the qualifiers outside the typedef are dealt with.
if (LType->getAs<TypedefType>()) {
LLVM_DEBUG(llvm::dbgs() << "--- calculateMixability. LHS is typedef.\n");
return calculateMixability(Check, LType.getSingleStepDesugaredType(Ctx),
Expand All @@ -646,44 +700,95 @@ calculateMixability(const TheCheck &Check, QualType LType, QualType RType,

// A parameter of type 'cvr1 T' and another of potentially differently
// qualified 'cvr2 T' may bind with the same power, if the user so requested.
//
// Whether to do this check for the inner unqualified types.
bool CompareUnqualifiedTypes = false;
if (LType.getLocalCVRQualifiers() != RType.getLocalCVRQualifiers()) {
LLVM_DEBUG(if (LType.getLocalCVRQualifiers()) llvm::dbgs()
<< "--- calculateMixability. LHS is CVR.\n");
LLVM_DEBUG(if (RType.getLocalCVRQualifiers()) llvm::dbgs()
<< "--- calculateMixability. RHS is CVR.\n");
LLVM_DEBUG(if (LType.getLocalCVRQualifiers()) {
llvm::dbgs() << "--- calculateMixability. LHS has CVR-Qualifiers: ";
Qualifiers::fromCVRMask(LType.getLocalCVRQualifiers())
.print(llvm::dbgs(), Ctx.getPrintingPolicy());
llvm::dbgs() << '\n';
});
LLVM_DEBUG(if (RType.getLocalCVRQualifiers()) {
llvm::dbgs() << "--- calculateMixability. RHS has CVR-Qualifiers: ";
Qualifiers::fromCVRMask(RType.getLocalCVRQualifiers())
.print(llvm::dbgs(), Ctx.getPrintingPolicy());
llvm::dbgs() << '\n';
});

if (!Check.QualifiersMix) {
LLVM_DEBUG(llvm::dbgs()
<< "<<< calculateMixability. QualifiersMix turned off.\n");
<< "<<< calculateMixability. QualifiersMix turned off - not "
"mixable.\n");
return {MixFlags::None};
}

return calculateMixability(Check, LType.getLocalUnqualifiedType(),
RType.getLocalUnqualifiedType(), Ctx,
ImplicitMode) |
MixFlags::Qualifiers;
CompareUnqualifiedTypes = true;
}
// Whether the two types had the same CVR qualifiers.
bool OriginallySameQualifiers = false;
if (LType.getLocalCVRQualifiers() == RType.getLocalCVRQualifiers() &&
LType.getLocalCVRQualifiers() != 0) {
LLVM_DEBUG(llvm::dbgs()
<< "--- calculateMixability. LHS and RHS same CVR.\n");
// Apply the same qualifier back into the found common type if we found
// a common type between the unqualified versions.
return calculateMixability(Check, LType.getLocalUnqualifiedType(),
RType.getLocalUnqualifiedType(), Ctx,
ImplicitMode)
.qualify(LType.getLocalQualifiers());
LLVM_DEBUG(if (LType.getLocalCVRQualifiers()) {
llvm::dbgs()
<< "--- calculateMixability. LHS and RHS have same CVR-Qualifiers: ";
Qualifiers::fromCVRMask(LType.getLocalCVRQualifiers())
.print(llvm::dbgs(), Ctx.getPrintingPolicy());
llvm::dbgs() << '\n';
});

CompareUnqualifiedTypes = true;
OriginallySameQualifiers = true;
}

if (CompareUnqualifiedTypes) {
NonCVRQualifiersResult AdditionalQuals =
getNonCVRQualifiers(Ctx, LType, RType);
if (AdditionalQuals.HasMixabilityBreakingQualifiers) {
LLVM_DEBUG(llvm::dbgs() << "<<< calculateMixability. Additional "
"non-equal incompatible qualifiers.\n");
return {MixFlags::None};
}

MixData UnqualifiedMixability =
calculateMixability(Check, LType.getLocalUnqualifiedType(),
RType.getLocalUnqualifiedType(), Ctx, ImplicitMode)
.withCommonTypeTransformed([&AdditionalQuals, &Ctx](QualType QT) {
// Once the mixability was deduced, apply the qualifiers common
// to the two type back onto the diagnostic printout.
return Ctx.getQualifiedType(QT, AdditionalQuals.CommonQualifiers);
});

if (!OriginallySameQualifiers)
// User-enabled qualifier change modelled for the mix.
return UnqualifiedMixability | MixFlags::Qualifiers;

// Apply the same qualifier back into the found common type if they were
// the same.
return UnqualifiedMixability.withCommonTypeTransformed(
[&Ctx, LType](QualType QT) {
return Ctx.getQualifiedType(QT, LType.getLocalQualifiers());
});
}

// Certain constructs match on the last catch-all getCanonicalType() equality,
// which is perhaps something not what we want. If this variable is true,
// the canonical type equality will be ignored.
bool RecursiveReturnDiscardingCanonicalType = false;

if (LType->isPointerType() && RType->isPointerType()) {
// If both types are pointers, and pointed to the exact same type,
// LType == RType took care of that. Try to see if the pointee type has
// some other match. However, this must not consider implicit conversions.
LLVM_DEBUG(llvm::dbgs()
<< "--- calculateMixability. LHS and RHS are Ptrs.\n");
MixData MixOfPointee = calculateMixability(
Check, LType->getPointeeType(), RType->getPointeeType(), Ctx,
ImplicitConversionModellingMode::None);
MixData MixOfPointee =
calculateMixability(Check, LType->getPointeeType(),
RType->getPointeeType(), Ctx,
ImplicitConversionModellingMode::None)
.withCommonTypeTransformed(
[&Ctx](QualType QT) { return Ctx.getPointerType(QT); });
if (hasFlag(MixOfPointee.Flags,
MixFlags::WorkaroundDisableCanonicalEquivalence))
RecursiveReturnDiscardingCanonicalType = true;
Expand Down Expand Up @@ -2130,14 +2235,14 @@ void EasilySwappableParametersCheck::check(
UniqueTypeAlias(LType, RType, CommonType)) {
StringRef DiagText;
bool ExplicitlyPrintCommonType = false;
if (LTypeStr == CommonTypeStr || RTypeStr == CommonTypeStr)
if (LTypeStr == CommonTypeStr || RTypeStr == CommonTypeStr) {
if (hasFlag(M.flags(), MixFlags::Qualifiers))
DiagText = "after resolving type aliases, '%0' and '%1' share a "
"common type";
else
DiagText =
"after resolving type aliases, '%0' and '%1' are the same";
else if (!CommonType.isNull()) {
} else if (!CommonType.isNull()) {
DiagText = "after resolving type aliases, the common type of '%0' "
"and '%1' is '%2'";
ExplicitlyPrintCommonType = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ void OwningMemoryCheck::check(const MatchFinder::MatchResult &Result) {
CheckExecuted |= handleReturnValues(Nodes);
CheckExecuted |= handleOwnerMembers(Nodes);

(void)CheckExecuted;
assert(CheckExecuted &&
"None of the subroutines executed, logic error in matcher!");
}
Expand Down
Loading