Skip to content
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

Fetch upstream #5

Merged
merged 908 commits into from
May 31, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
908 commits
Select commit Hold shift + click to select a range
edcd06b
[test/ClangScanDeps] Add a target triple for `macro-expansions.cpp`
akyrtzi May 27, 2022
2046e11
[mlir][sparse] Improving ExecutionEngine/SparseTensorUtils.h
wrengr May 26, 2022
05c17bc
[mlir][sparse] Moving some functions around
wrengr May 26, 2022
cef377d
[RISCV] Simplify code after D125905
MaskRay May 27, 2022
3aa2493
Revert "[Propeller] Promote functions with propeller profiles to .tex…
rlavaee May 27, 2022
52992f1
Add !nosanitize to FixedMetadataKinds
Enna1 May 27, 2022
5aefdaf
[mlir][Linalg] Relax vectorization condition to allow transposed output.
hanhanW May 27, 2022
535604e
[X86][AMX] Update test case with automation tool.
LuoYuanke May 27, 2022
b709f07
[InstCombine] [NFC] precommit tests for bitcast-extelt
ZCBing May 27, 2022
08cc058
Reland "[Propeller] Promote functions with propeller profiles to .tex…
rlavaee May 27, 2022
827fa2c
[gn build] Port 08cc05851872
llvmgnsyncbot May 27, 2022
9b8ca3c
[libc] Add global stdout and stderr objects.
May 24, 2022
121689a
[SelectionDAG][NFC] Simplify integer promotion in setcc/vp.setcc
Pretty-box May 27, 2022
842e48b
[demangler][RISCV] Fix for long double
piggynl May 26, 2022
e251fb4
[libunwind][CMake] Fix name of LIBUNWIND_SUPPORTS_NODEFAULTLIBS_FLAG
samolisov May 26, 2022
a840268
[RISCV] Add test for experimental.vector.reverse
May 27, 2022
0252357
[mlir][LLVM] Add support for Calling Convention in LLVMFuncOp
alexbatashev May 27, 2022
bdd0093
[GlobalISel] Add G_IS_FPCLASS
spavloff Mar 11, 2022
d6708b7
[mlir-vscode] Add support for highlighting pdll and tablegen markdown…
River707 May 16, 2022
7a2d6de
[analyzer][NFC] Inline ExprEngine::evalComplement
May 27, 2022
ee8987d
[analyzer][NFC] Inline ExprEngine::evalMinus
May 27, 2022
f6eab43
[analyzer][NFC] Inline loc::ConcreteInt::evalBinOp
May 27, 2022
8106660
[analyzer][NFC] Remove unused nonloc::ConcreteInt::evalBinOp
May 27, 2022
813acb1
[analyzer][NFC] Remove unused SVal::hasConjuredSymbol
May 27, 2022
3a666dd
[analyzer][NFC] Use MemRegion::getRegion()'s return value uncondition…
May 27, 2022
3a7a465
[analyzer][docs] Fix typo in checker name
May 27, 2022
11e3ad2
[libc++] Implement ranges::is_sorted{, _until}
philnik777 May 26, 2022
cde101d
[gn build] Port 11e3ad299fee
llvmgnsyncbot May 27, 2022
aaaf9ce
[X86][AMX] Replace LDTILECFG with PLDTILECFGV on auto-config.
LuoYuanke May 27, 2022
3606da5
[libc++] Enable ranges_robust_against* and niebloid tests for impleme…
philnik777 May 26, 2022
e37b287
[analyzer][NFC] Use idiomatic classof instead of isKind
May 27, 2022
d8def22
[analyzer][NFC] Remove unused friend SVal declarations
May 27, 2022
7727d2a
[analyzer][NFC] Remove unused default SVal constructors
May 27, 2022
6ab69ef
[analyzer][NFC] Rename GREngine->CoreEngine, GRExprEngine->ExprEngine…
May 27, 2022
f13050e
[analyzer][NFCi] Annotate major nonnull returning functions
May 27, 2022
3988bd1
[llvm][clang][bolt][NFC] Use llvm::less_first() when applicable
May 27, 2022
a73b50a
Revert "[llvm][clang][bolt][NFC] Use llvm::less_first() when applicable"
May 27, 2022
4290ef5
[Support] Reduce allocations in parallelForEach with move
nga888 May 25, 2022
786c687
[AArch64] Add support for FMA intrinsics to shouldSinkOperands.
fhahn May 27, 2022
dc9fb65
[mlir][Tablegen-LSP] Add support for a compilation database
River707 May 9, 2022
682ca00
[mlir][Tablegen-LSP] Add support for include file link and hover
River707 May 9, 2022
8d02167
[mlir][Tablegen-LSP] Add support for a tracking definitions and refer…
River707 May 10, 2022
c78c00d
[LLD][ELF] Drop the string null terminator from the hash in splitStrings
nga888 May 26, 2022
c913c55
[llvm-ar][test] add special case of replace converting a regular to a…
bd1976bris May 27, 2022
7df2597
[Doc][OpenCL] Misc wording improvements for SPIR-V
May 27, 2022
f168a65
[MLIR][Presburger] Add intersectDomain/Range to IntegerRelation
Groverkss May 27, 2022
3e450d9
[RISCV][NFC] Unify compatibility checks under one function
frasercrmck May 26, 2022
889c7c8
[flang] Support correct continuations for compiler directives
May 27, 2022
a94d454
[LLD][test] Update `zlib` tests for LLD commit c78c00dc16
nga888 May 27, 2022
52d79b0
[mlir][llvm] Fix compiler error on GCC 9
May 27, 2022
8c0eb32
Also remove the empty StoredDeclsList entry from the lookup table
vgvassilev May 27, 2022
dae2c24
[flang][OpenMP][NFC] Cleanup the sections tests
shraiysh May 27, 2022
67136d0
[clang][dataflow] Remove private-field filtering from `StorageLocatio…
ymand May 25, 2022
3682e22
[clang][dataflow] Improve handling of constructor initializers.
ymand May 25, 2022
49ad577
[workflow] Don't fail workflow if we already have a PR for an issue
tru May 27, 2022
e651ed8
[analyzer] Fix wrong annotation of LazyCompoundVal::getStore
May 27, 2022
b479ea4
Add llvm-debuginfod-find tool to Bazel build
vettoreldaniele May 27, 2022
af43094
[PowerPC][AIX] Allow VSX patterns to be 32-bit and 64-bit safe on P8+.
amy-kwan May 26, 2022
684c080
[Clang] Extend -gen-reproducer flag
abrachet May 27, 2022
e917801
[Clang][Driver] Fix include paths for `--sysroot /` on Linux
egorzhdan May 24, 2022
5a6e085
[InstCombine] reduce code duplication; NFC
rotateright May 27, 2022
b5b6aa4
[InstCombine] fold multiply by signbit-splat to cmp+select
rotateright May 27, 2022
042ae89
[OpenMP] Support operation conversion to LLVM for threadprivate direc…
PeixinQiao May 27, 2022
a205f29
[WebAssembly] Consolidate sectionTypeToString in BinaryFormat [NFC]
dschuff May 27, 2022
bf1ab1f
cmake: use llvm dir variables for clang/utils/hmaptool
mizvekov May 24, 2022
865ad6b
[libc++] Use __libcpp_clz for a tighter __log2i function
zmodem May 19, 2022
4dc3893
Revert "[Clang] Extend -gen-reproducer flag"
abrachet May 27, 2022
a5d7e2a
[OpenMP][mlir] fix broken build
aartbik May 27, 2022
c358d98
[libc++] Add various missing _LIBCPP_HIDE_FROM_ABI
ldionne May 26, 2022
719bf2d
[runtimes] Officially deprecate the legacy testing configuration system
ldionne May 26, 2022
8e724ad
[TSan][Darwin] Deflake test
May 27, 2022
5df2893
AMDGPU: Add G_AMDGPU_MAD_64_32 instructions
nhaehnle Apr 28, 2022
aaad507
[RISCV] Return false from isOffsetFoldingLegal instead of reversing t…
topperc May 27, 2022
4f12a72
[llvm-lib] Ignore /LTCG option
pzhengqc May 19, 2022
0e8f4ce
[lld][WebAssembly] Fix crash on undefined+weak function syms in LTO o…
sbc100 May 27, 2022
d0f65ea
[RISCV] Remove unused variables. NFC
topperc May 27, 2022
eb1c503
[libc++][NFC] Rename rand.dis to rand.dist
philnik777 May 23, 2022
a7f9895
[runtimes] Rename various libcpp-has-no-XYZ Lit features to just no-XYZ
ldionne May 26, 2022
03a0907
[CMake] Make FindLibEdit.cmake more robust
upsj May 27, 2022
b09e545
[RISCV] Use template version of SignExtend64 for constant extends. NFC
topperc May 27, 2022
d4905a7
[RISCV] Add a vsetvli PRE test involving non-1 LMUL
preames May 27, 2022
0fbe3f3
[mlir][sparse] Fixes C++98 warning
wrengr May 27, 2022
542a83c
[RISCV] Correct load/store alignments in sink-splat-operands.ll. NFC
topperc May 27, 2022
9191078
[lldb] Fix cross compiling on macOS
mstorsjo May 27, 2022
de20fb7
[bazel] BLAKE3: Adopt aarch64 and x86_64.
chapuni May 27, 2022
6a84579
[LSR][TTI][PowerPC][SystemZ][X86] Add const-ness to TTI::isLSRCostLes…
May 25, 2022
85b4470
[RISCV] Allow PRE of vsetvli involving non-1 LMUL
preames May 27, 2022
4a36813
[OpenACC][OpenMP] Document atomic-in-teams extension
jdenny-ornl May 27, 2022
1534177
[mlir][bufferization][NFC] Move OpFilter out of BufferizationOptions
matthias-springer May 27, 2022
3490aad
[mlir][bufferization][NFC] Remove post-analysis step infrastructure
matthias-springer May 28, 2022
f470f8c
[mlir][bufferize][NFC] Split analysis+bufferization of ModuleBufferiz…
matthias-springer May 28, 2022
2f0a634
[mlir][bufferization] Add extra filter mechanism to bufferizeOp
matthias-springer May 28, 2022
a27b913
[scudo] Clean up Zircon header file uses
frobtech May 28, 2022
068b8af
[ARM][AArch64] Change -mharden-sls= to use err_drv_unsupported_option…
MaskRay May 28, 2022
3b45000
[Driver] Replace err_invalid_branch_protection with err_drv_unsupport…
MaskRay May 28, 2022
d3d3e25
[CompilerInstance] Fix weird condition on `createCodeCompletionConsumer`
JohnTitor May 27, 2022
fad6e37
[Lex] Fix crash during dependency scanning while skipping an unmatche…
akyrtzi May 28, 2022
34f7380
[libc++] Remove unused __functional includes
philnik777 May 20, 2022
30c37fb
[libc++] Granularize more of <type_traits>
philnik777 May 26, 2022
936e9bf
[gn build] Port 30c37fb89cb7
llvmgnsyncbot May 28, 2022
65af17c
[flang][OpenMP][OpenACC] Fix exit of a region
PeixinQiao May 28, 2022
6607330
[flang][OpenMP] Fix pointer variables in atomic read/write
PeixinQiao May 28, 2022
b86771a
[libc++] Minor emscripten changes from downstream
sbc100 May 22, 2021
0a2d2ee
[docs] Update the label name for new contributors
JohnTitor May 27, 2022
7350625
[flang] Avoid spurious warnings from reading module files
klausler May 24, 2022
bc08a16
Remove `deplibs` keyword completely
JohnTitor May 27, 2022
3142c76
[nfc][flang] Fix spelling errors and usage in an error message
klausler May 26, 2022
0c19057
[flang] Make generic resolution conform to 15.5.5.2 w/r/t host associ…
klausler May 26, 2022
50f2e49
[clang][cmake] Fixed typo in hmaptool CMakeLists.txt
notdanhan May 28, 2022
f1983fe
[flang] Make extension explicit: exponent-letter matching kind-param
ekieri May 27, 2022
2f23abd
Increase the default maximum stack walk
jasonmolenda May 28, 2022
6abce17
[VPlan] Use Exiting-block instead of Exit-block terminology (NFC).
fhahn May 28, 2022
dac27da
[MLIR][Presburger] Add applyDomain/Range to IntegerRelation
Groverkss May 28, 2022
41a054e
[clang] Remove `rm` script which is no longer necessary
JohnTitor May 28, 2022
5ff27fe
[clang-repl] Recover the lookup tables of the primary context.
Purva-Chaudhari May 29, 2022
ebb6f3c
[libc++] Adds missing includes.
mordante May 29, 2022
c7283c2
[mlir][NFC] Trivial : Fix typo
javedabsar1 May 28, 2022
7e69bd9
[libc++] Use __enable_if_t and is_integral in cstddef
philnik777 May 28, 2022
75d12e4
[libclang] Fall back to getMainExecutable when dladdr fails
aykevl May 3, 2022
0bd645d
[libclang] Fix error message capitalization
aykevl May 29, 2022
4cb184c
[libc++] Adds __format_string as nasty macro.
mordante May 15, 2022
773c6e4
[libc++][doc] Clarify wording on the status page.
mordante May 15, 2022
9080e21
[InstCombine] Add baseline tests for shift+and transforms; NFC
bcl5980 May 29, 2022
c996904
[X86] Adjust vector shift costs to match SoG (Issue #54889)
RKSimon May 29, 2022
e091721
[InstCombine] Add baseline tests for shift+and+icmp transforms; NFC
bcl5980 May 29, 2022
7f1e048
[libc++][test] Remove Clang <= 3.7 workaround in is_default_construct…
JoeLoser May 28, 2022
9a3144d
[AArch64] Reuse larger DUP if available
davemgreen May 29, 2022
0776c48
Recommit "[LICM] Only create load in ph when promoting load or store …
fhahn May 29, 2022
e642d0e
[RISCV] Add test cases showing missed opportunity to use shXadd.uw. NFC
topperc May 30, 2022
6a6cf2e
[RISCV] isel (add (and X, 0x1FFFFFFFE), Y) as (SH1ADD (SRLI X, 1), Y)
topperc May 30, 2022
967ef4a
[NFC][VP] Fix llvm.vp.merge intrinsic Expansion in LangRef
May 27, 2022
c98b3a8
Fix `performance-unnecessary-value-param` for template specialization
Sockke May 30, 2022
ef256ed
[InstCombine] bitcast (extractelement <1 x elt>, dest) -> bitcast(<1 …
ZCBing May 30, 2022
99eca83
[Driver] Enable to use C++20 standalne by -fcxx-modules
ChuanqiXu9 May 30, 2022
42c3c70
Revert "[Driver] Enable to use C++20 standalne by -fcxx-modules"
ChuanqiXu9 May 30, 2022
083798e
[LegalizeTypes][VP] Add integer promotion support for vp.fptosi/vp.fp…
Pretty-box May 30, 2022
88af539
[RISCV] Support VP_REDUCE_MUL mask operation
Pretty-box May 30, 2022
3f3a235
[clang-apply-replacements] Added an option to ignore insert conflict.
Sockke May 30, 2022
503d577
[JumpThreading][NFCI] Reuse existing DT instead of recomputation
xortator May 30, 2022
a544710
[Driver] Enable to use C++20 standalne by -fcxx-modules
ChuanqiXu9 May 30, 2022
751c7be
[TableGen] Remove code beads
0x59616e May 30, 2022
b16460b
[gn build] Port 751c7be5b20f
llvmgnsyncbot May 30, 2022
738c20e
[NFC] Use %clang instead of %clang++ in tests
ChuanqiXu9 May 30, 2022
a5ddd4a
[pseudo] Remove an unnecessary nullable check diagnostic in the bnf
hokein May 30, 2022
bcf3d52
[MLIR][GPU] Expose GpuParallelLoopMapping as non-test pass.
chsigg May 30, 2022
f5fa633
[mlir] Lower complex.sqrt and complex.atan2 to Arithmetic dialect.
pifon2a May 27, 2022
1721ff1
[GVN] Enable enable-split-backedge-in-load-pre option by default
nikic May 25, 2022
1956f28
[X86] Adjust vector extend to ymm to match SoG (Issue #54889)
RKSimon May 30, 2022
f82967b
[M68k] Remove unused variable to fix MSVC warning. NFC.
RKSimon May 30, 2022
544d650
[MLIR][NVVM] NFC: add labels to test functions.
chsigg May 30, 2022
402b837
Revert "[mlir] Lower complex.sqrt and complex.atan2 to Arithmetic dia…
pifon2a May 30, 2022
14cc467
[X86] Adjust vector fp test costs to match int test costs
RKSimon May 30, 2022
082822b
[AMDGPU][GFX9] Support base+soffset+offset SMEM stores.
kosarev May 30, 2022
b4dbcba
[AMDGPU][GFX9][NFC] Rename the base class for SMEM stores.
kosarev May 30, 2022
5cde5a5
[mlir] add interchange, pad and scalarize to structured transform dia…
ftynse May 24, 2022
99b0078
[AArch64] Tests for showing MachineCombiner COPY patterns. NFC
davemgreen May 30, 2022
a5cf17f
[OpenCL] Expose wg collective functions for CL3 SPIR targets
svenvh May 30, 2022
d245974
Test stackmap support for floating point types.
vext01 May 30, 2022
10d2195
Update the Windows packaging script
zmodem May 30, 2022
180d3f2
[MemDep][NFCI] Remove redundant dyn_cast, replace with cast
xortator May 30, 2022
78a18d2
[VP] vp intrinsics are not speculatable
simoll May 30, 2022
7e5a730
[MemDep][NFC] Remove duplicating check in `if` and `else` branch
xortator May 30, 2022
820146a
[OpenMP] Pass chunk-size to MLIR while lowering from parse-tree
Leporacanthicus Mar 22, 2021
bac4934
Revert "build_llvm_package.bat: Produce zip files in addition to the …
zmodem May 30, 2022
0f68c95
Apply clang-tidy fixes for modernize-use-override in SparseTensorUtil…
joker-eph May 24, 2022
eacfd04
Apply clang-tidy fixes for llvm-else-after-return in OpPythonBindingG…
joker-eph May 24, 2022
2e2a8a2
Revert "[VP] vp intrinsics are not speculatable"
joker-eph May 30, 2022
18c1ee0
Re-land "[VP] vp intrinsics are not speculatable" with test fix
simoll May 30, 2022
3e6ba89
[InstCombine] Fold a mul with bool value into and
vfdff May 30, 2022
be3fc66
Revert "[clang][test] mark tests added in ee8524087c78 as unsupported…
jakeegan May 30, 2022
1f1de06
[SimplifyCFG] Add test for invoke of nounwind non-willreturn function…
nikic May 30, 2022
2e101cc
[Local] Don't remove invoke of non-willreturn function
nikic May 30, 2022
590fd54
[InstCombine] Add tests for inbounds handling in loop invariant GEP f…
nikic May 30, 2022
2d7bab6
[InstCombine] Always create new GEPs when swapping GEPs
nikic May 30, 2022
314abe3
[flang][OpenMP] Check for occurrence of multiple list items in nontem…
May 30, 2022
d2e3cb7
[OpenMP][Clang] Fix atomic compare for signed vs. unsigned
jdenny-ornl May 30, 2022
a770f53
[InstCombine] When swapping GEPs, only keep inbounds if both are
nikic May 30, 2022
b271934
Change build_llvm_package.bat to build_llvm_release.bat
zmodem May 30, 2022
cc6c159
[mlir] add VectorizeOp to structured transform ops
ftynse May 30, 2022
3f71765
[mlir] provide Python bindings for the Transform dialect
ftynse May 30, 2022
4278b7e
[sanitizers] Fixes strndup API behaviour when intercepted by sanitizers
goussepi May 30, 2022
f8239ee
[libc++] Reduce the verbosity when running the libc++ Lit configuration
ldionne May 30, 2022
e576280
[HLSL] Enable vector types for hlsl.
python3kgae May 5, 2022
85322e8
[TwoAddressInstructionPass] Special processing of STATEPOINT instruct…
Apr 10, 2022
1e01b1e
[gn build] Port e576280380d3
llvmgnsyncbot May 30, 2022
aff2719
Fix warning for unused variable in the non-assert build (NFC)
joker-eph May 30, 2022
f3defc2
[ODRHash][NFC] Add missing 'select' case for `ODRMismatchDecl`.
vsapsai May 27, 2022
b7d2b16
[VPlan] Add test for printing VPlan for outer loop vectorization.
fhahn May 30, 2022
c4eb803
Revert "[HLSL] Enable vector types for hlsl."
nico May 30, 2022
80b3dcc
[Support] Make report_fatal_error respect its GenCrashDiag argument s…
nunoplopes May 30, 2022
8c55de9
fix tests after my commit 80b3dcc045f8ea6e5e532d8891bbf1305bce89e8
nunoplopes May 30, 2022
118d9eb
Apply clang-tidy fixes for llvm-else-after-return in OpenMPToLLVM.cpp…
joker-eph May 30, 2022
940e290
Apply clang-tidy fixes for performance-unnecessary-value-param in One…
joker-eph May 30, 2022
a004438
[InstCombine] add/move tests for shift-of-constant-by-same-shift-by-c…
rotateright May 30, 2022
c5d942a
[InstCombine] remove unnecessary one-use check from (C2 << X) << C1 fold
rotateright May 30, 2022
a0c3c60
[InstCombine] fold shift-right-by-constant with shift-right-of-consta…
rotateright May 30, 2022
9331912
cmake: fix clang standalone build
mizvekov May 30, 2022
d65fa2c
[Hexagon] Widen vector types with non-power-of-2 element counts
May 30, 2022
fe7cd1d
[libc++][NFC] Improve comment about vector and string base class ABI …
ldionne May 30, 2022
0dbaff2
[FileCheck] Use %ProtectFileCheckOutput in recently added test
jdenny-ornl May 30, 2022
167fb10
compiler-rt/cpu_model: Ensure constructor priority is set and align w…
Keno May 25, 2022
c825abd
[clang] NFC: introduce test for D126620
mizvekov May 30, 2022
51002bd
[RISCV] Precommit test case to show bug in RISCVISelDagToDag
May 30, 2022
40e52d3
[libc++][test] Enable some ADL robust algorithm tests
JoeLoser May 30, 2022
2cadf84
[RISCV] Pass OptLevel to `RISCVDAGToDAGISel` correctly
May 30, 2022
91b8d96
[mlir:PDLL] Add proper support for operation result type inference
River707 Apr 30, 2022
01652d8
[mlir:PDLL-LSP] Add a custom LSP command for viewing the output of PDLL
River707 Apr 30, 2022
0429472
[mlir:PDLL] Fix signature help for operation operands
River707 Apr 30, 2022
1c2edb0
[mlir:PDLL] Rework the C++ generation of native Constraint/Rewrite ar…
River707 May 3, 2022
5d5aba7
[X86][NFC] Refine X86 Domain Reassignment for compiling time
xiangzh1 May 30, 2022
563cc3f
[Clang][CSKY] Add support about CSKYABIInfo
zixuan-wu May 20, 2022
575e297
Revert "[clang-repl] Recover the lookup tables of the primary context."
vgvassilev May 31, 2022
11fb1aa
[flang] Upstream the lowering of the while loop
rovka May 25, 2022
d384a4c
[X86] Adjust vector test costs to match SoG (Issue #54889)
RKSimon May 31, 2022
d861088
Fix bazel build
metaflow May 31, 2022
9771510
[BOLT][NFC] Don't over-specify the size of SmallVector
kongy May 31, 2022
5cb14dc
[AArch64] Look through copy in MachineCombiner FMUL patterns.
davemgreen May 31, 2022
f199b2b
[AMDGPU][NFC] Refine defining the offset field for GFX10+ SMEM instru…
kosarev May 31, 2022
86caa03
Revert "Round up zero-sized symbols to 1 byte in `.debug_aranges`."
bjope May 31, 2022
5a2e640
[RISCV][NFC] Adjust some comments in RISCVInsertVSETVLI
frasercrmck May 31, 2022
b501503
[Flang][OpenMP] Fix for unstructured regions in OpenMP constructs - 2
kiranchandramohan May 31, 2022
872d69e
[InstCombine] Fix inbounds preservation when merging GEPs (PR55722)
nikic May 31, 2022
42c1707
[mlir] Support import llvm intrinsics.
May 30, 2022
62c4609
[AMDGPU][DOC][NFC] Add GFX90C and GFX940 assembler syntax description
dpreobra May 31, 2022
110a20b
[bazel] Port 42c17073fcba
d0k May 31, 2022
d8c46eb
Apply clang-tidy fixes for readability-identifier-naming in SparseTen…
joker-eph May 30, 2022
5d93d2a
Apply clang-tidy fixes for llvm-else-after-return in OpPythonBindingG…
joker-eph May 30, 2022
c7bee26
[mlir][Bazel] Adjust BUILD.bazel file
akuegel May 31, 2022
4fb3fd7
[InstCombine] Fix const folding of switches with default case
danilaml May 30, 2022
b0fc765
[NFC] Change LoopVectorizationCostModel::useOrderedReductions() to be…
Mel-Chen May 31, 2022
b8f5732
[libc++abi][AIX] add personality and helper functions for the state t…
xingxue-ibm May 31, 2022
ed0303a
[X86] LowerTRUNCATE - avoid creating extract_subvector(bitcast(vec)) …
RKSimon May 31, 2022
858e627
[Clang] Always set opaque pointers mode
nikic May 31, 2022
36cbdaa
[InstCombine] Fix inbounds preservation when swapping GEPs (PR44206)
nikic May 30, 2022
b9443cb
[X86] narrowExtractedVectorSelect - don't peek through bitcasts to fi…
RKSimon May 31, 2022
42861fa
attributes: introduce allockind attr for describing allocator fn beha…
durin42 Mar 29, 2022
73f6646
BuildLibCalls: infer allockind attributes on relevant functions
durin42 Mar 29, 2022
ae76652
Revert "[Libomptarget] Add `leaf` attribute to `vprintf` declaration"
jhuber6 May 31, 2022
9c38fc1
[AArch64] Remove references to Streaming SVE from target features.
sdesmalen-arm May 18, 2022
35b1cfc
[Driver][Modules] Remove dependence on linking support from clang/tes…
DanielMcIntosh May 30, 2022
b0a1a30
LangRef: fix bad indentation in allockind bullets
durin42 May 31, 2022
af0113c
[X86] combineEXTRACT_SUBVECTOR - pull out repeated getVectorNumElemen…
RKSimon May 31, 2022
ae67984
[clangd] ExtractVariable support for C and Objective-C
DavidGoldman Apr 26, 2022
e8860be
[AMDGPU] gfx11 Image instructions
Sisyph May 12, 2022
10555a8
[PS5] Tweak dllexport test
pogo59 May 31, 2022
1257315
[Scalarizer] Regenerate test checks (NFC)
nikic May 31, 2022
f3d8335
[flang] Support BIND(C) variable scope check
PeixinQiao May 31, 2022
c797952
[clangd] Minor fixes to ExtractVariableTests missed in D124486
DavidGoldman May 31, 2022
e22b02d
[Clang][Docs] Document the clang-offload-packager better
jhuber6 May 31, 2022
850dbff
[MLIR][Math] Improve docs (NFC)
chelini May 30, 2022
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.
8 changes: 5 additions & 3 deletions bolt/include/bolt/Core/BinaryContext.h
Original file line number Diff line number Diff line change
Expand Up @@ -1187,18 +1187,20 @@ class BinaryContext {
uint64_t Offset = 0,
const BinaryFunction *Function = nullptr,
bool PrintMCInst = false, bool PrintMemData = false,
bool PrintRelocations = false) const;
bool PrintRelocations = false,
StringRef Endl = "\n") const;

/// Print a range of instructions.
template <typename Itr>
uint64_t
printInstructions(raw_ostream &OS, Itr Begin, Itr End, uint64_t Offset = 0,
const BinaryFunction *Function = nullptr,
bool PrintMCInst = false, bool PrintMemData = false,
bool PrintRelocations = false) const {
bool PrintRelocations = false,
StringRef Endl = "\n") const {
while (Begin != End) {
printInstruction(OS, *Begin, Offset, Function, PrintMCInst, PrintMemData,
PrintRelocations);
PrintRelocations, Endl);
Offset += computeCodeSize(Begin, Begin + 1);
++Begin;
}
Expand Down
3 changes: 0 additions & 3 deletions bolt/include/bolt/Core/BinaryFunction.h
Original file line number Diff line number Diff line change
Expand Up @@ -667,9 +667,6 @@ class BinaryFunction {
uint64_t Offset,
uint64_t &TargetAddress);

DenseMap<const MCInst *, SmallVector<MCInst *, 4>>
computeLocalUDChain(const MCInst *CurInstr);

BinaryFunction &operator=(const BinaryFunction &) = delete;
BinaryFunction(const BinaryFunction &) = delete;

Expand Down
22 changes: 16 additions & 6 deletions bolt/include/bolt/Core/MCPlusBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -909,12 +909,22 @@ class MCPlusBuilder {
return false;
}

/// Use \p Input1 or Input2 as the current value for the input register and
/// put in \p Output the changes incurred by executing \p Inst. Return false
/// if it was not possible to perform the evaluation.
virtual bool evaluateSimple(const MCInst &Inst, int64_t &Output,
std::pair<MCPhysReg, int64_t> Input1,
std::pair<MCPhysReg, int64_t> Input2) const {
/// Use \p Input1 or Input2 as the current value for the input
/// register and put in \p Output the changes incurred by executing
/// \p Inst. Return false if it was not possible to perform the
/// evaluation. evaluateStackOffsetExpr is restricted to operations
/// that have associativity with addition. Its intended usage is for
/// evaluating stack offset changes. In these cases, expressions
/// appear in the form of (x + offset) OP constant, where x is an
/// unknown base (such as stack base) but offset and constant are
/// known. In these cases, \p Output represents the new stack offset
/// after executing \p Inst. Because we don't know x, we can't
/// evaluate operations such as multiply or AND/OR, e.g. (x +
/// offset) OP constant is not the same as x + (offset OP constant).
virtual bool
evaluateStackOffsetExpr(const MCInst &Inst, int64_t &Output,
std::pair<MCPhysReg, int64_t> Input1,
std::pair<MCPhysReg, int64_t> Input2) const {
llvm_unreachable("not implemented");
return false;
}
Expand Down
4 changes: 2 additions & 2 deletions bolt/include/bolt/Passes/StackPointerTracking.h
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ class StackPointerTrackingBase
else
FP = std::make_pair(0, 0);
int64_t Output;
if (!MIB->evaluateSimple(Point, Output, SP, FP)) {
if (!MIB->evaluateStackOffsetExpr(Point, Output, SP, FP)) {
if (SPVal == EMPTY && FPVal == EMPTY)
return SPVal;
return SUPERPOSITION;
Expand Down Expand Up @@ -150,7 +150,7 @@ class StackPointerTrackingBase
else
SP = std::make_pair(0, 0);
int64_t Output;
if (!MIB->evaluateSimple(Point, Output, SP, FP)) {
if (!MIB->evaluateStackOffsetExpr(Point, Output, SP, FP)) {
if (SPVal == EMPTY && FPVal == EMPTY)
return FPVal;
return SUPERPOSITION;
Expand Down
11 changes: 6 additions & 5 deletions bolt/lib/Core/BinaryContext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1643,9 +1643,10 @@ void BinaryContext::printInstruction(raw_ostream &OS, const MCInst &Instruction,
uint64_t Offset,
const BinaryFunction *Function,
bool PrintMCInst, bool PrintMemData,
bool PrintRelocations) const {
bool PrintRelocations,
StringRef Endl) const {
if (MIB->isEHLabel(Instruction)) {
OS << " EH_LABEL: " << *MIB->getTargetSymbol(Instruction) << '\n';
OS << " EH_LABEL: " << *MIB->getTargetSymbol(Instruction) << Endl;
return;
}
OS << format(" %08" PRIx64 ": ", Offset);
Expand All @@ -1654,7 +1655,7 @@ void BinaryContext::printInstruction(raw_ostream &OS, const MCInst &Instruction,
OS << "\t!CFI\t$" << Offset << "\t; ";
if (Function)
printCFI(OS, *Function->getCFIFor(Instruction));
OS << "\n";
OS << Endl;
return;
}
InstPrinter->printInst(&Instruction, 0, "", *STI, OS);
Expand Down Expand Up @@ -1718,11 +1719,11 @@ void BinaryContext::printInstruction(raw_ostream &OS, const MCInst &Instruction,
Function->printRelocations(OS, Offset, Size);
}

OS << "\n";
OS << Endl;

if (PrintMCInst) {
Instruction.dump_pretty(OS, InstPrinter.get());
OS << "\n";
OS << Endl;
}
}

Expand Down
66 changes: 26 additions & 40 deletions bolt/lib/Core/BinaryFunction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@
#include "bolt/Utils/NameResolver.h"
#include "bolt/Utils/NameShortener.h"
#include "bolt/Utils/Utils.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/edit_distance.h"
#include "llvm/Demangle/Demangle.h"
Expand Down Expand Up @@ -453,31 +455,25 @@ void BinaryFunction::print(raw_ostream &OS, std::string Annotation,
OS << "\n Parent : " << *ParentFragment;
if (!Fragments.empty()) {
OS << "\n Fragments : ";
const char *Sep = "";
for (BinaryFunction *Frag : Fragments) {
OS << Sep << *Frag;
Sep = ", ";
}
ListSeparator LS;
for (BinaryFunction *Frag : Fragments)
OS << LS << *Frag;
}
if (hasCFG())
OS << "\n Hash : " << Twine::utohexstr(computeHash());
if (isMultiEntry()) {
OS << "\n Secondary Entry Points : ";
const char *Sep = "";
for (const auto &KV : SecondaryEntryPoints) {
OS << Sep << KV.second->getName();
Sep = ", ";
}
ListSeparator LS;
for (const auto &KV : SecondaryEntryPoints)
OS << LS << KV.second->getName();
}
if (FrameInstructions.size())
OS << "\n CFI Instrs : " << FrameInstructions.size();
if (BasicBlocksLayout.size()) {
OS << "\n BB Layout : ";
const char *Sep = "";
for (BinaryBasicBlock *BB : BasicBlocksLayout) {
OS << Sep << BB->getName();
Sep = ", ";
}
ListSeparator LS;
for (BinaryBasicBlock *BB : BasicBlocksLayout)
OS << LS << BB->getName();
}
if (ImageAddress)
OS << "\n Image : 0x" << Twine::utohexstr(ImageAddress);
Expand Down Expand Up @@ -552,20 +548,16 @@ void BinaryFunction::print(raw_ostream &OS, std::string Annotation,
}
if (!BB->pred_empty()) {
OS << " Predecessors: ";
const char *Sep = "";
for (BinaryBasicBlock *Pred : BB->predecessors()) {
OS << Sep << Pred->getName();
Sep = ", ";
}
ListSeparator LS;
for (BinaryBasicBlock *Pred : BB->predecessors())
OS << LS << Pred->getName();
OS << '\n';
}
if (!BB->throw_empty()) {
OS << " Throwers: ";
const char *Sep = "";
for (BinaryBasicBlock *Throw : BB->throwers()) {
OS << Sep << Throw->getName();
Sep = ", ";
}
ListSeparator LS;
for (BinaryBasicBlock *Throw : BB->throwers())
OS << LS << Throw->getName();
OS << '\n';
}

Expand All @@ -585,11 +577,11 @@ void BinaryFunction::print(raw_ostream &OS, std::string Annotation,
return BB->BranchInfo[B] < BB->BranchInfo[A];
});
}
const char *Sep = "";
ListSeparator LS;
for (unsigned I = 0; I < Indices.size(); ++I) {
BinaryBasicBlock *Succ = BB->Successors[Indices[I]];
BinaryBasicBlock::BinaryBranchInfo &BI = BB->BranchInfo[Indices[I]];
OS << Sep << Succ->getName();
OS << LS << Succ->getName();
if (ExecutionCount != COUNT_NO_PROFILE &&
BI.MispredictedCount != BinaryBasicBlock::COUNT_INFERRED) {
OS << " (mispreds: " << BI.MispredictedCount
Expand All @@ -598,20 +590,18 @@ void BinaryFunction::print(raw_ostream &OS, std::string Annotation,
BI.Count != BinaryBasicBlock::COUNT_NO_PROFILE) {
OS << " (inferred count: " << BI.Count << ")";
}
Sep = ", ";
}
OS << '\n';
}

if (!BB->lp_empty()) {
OS << " Landing Pads: ";
const char *Sep = "";
ListSeparator LS;
for (BinaryBasicBlock *LP : BB->landing_pads()) {
OS << Sep << LP->getName();
OS << LS << LP->getName();
if (ExecutionCount != COUNT_NO_PROFILE) {
OS << " (count: " << LP->getExecutionCount() << ")";
}
Sep = ", ";
}
OS << '\n';
}
Expand Down Expand Up @@ -4446,14 +4436,12 @@ void BinaryFunction::printLoopInfo(raw_ostream &OS) const {
OS << "\n";

std::stack<BinaryLoop *> St;
for (auto I = BLI->begin(), E = BLI->end(); I != E; ++I)
St.push(*I);
for_each(*BLI, [&](BinaryLoop *L) { St.push(L); });
while (!St.empty()) {
BinaryLoop *L = St.top();
St.pop();

for (BinaryLoop::iterator I = L->begin(), E = L->end(); I != E; ++I)
St.push(*I);
for_each(*L, [&](BinaryLoop *Inner) { St.push(Inner); });

if (!hasValidProfile())
continue;
Expand All @@ -4462,11 +4450,9 @@ void BinaryFunction::printLoopInfo(raw_ostream &OS) const {
<< " loop header: " << L->getHeader()->getName();
OS << "\n";
OS << "Loop basic blocks: ";
const char *Sep = "";
for (auto BI = L->block_begin(), BE = L->block_end(); BI != BE; ++BI) {
OS << Sep << (*BI)->getName();
Sep = ", ";
}
ListSeparator LS;
for (BinaryBasicBlock *BB : L->blocks())
OS << LS << BB->getName();
OS << "\n";
if (hasValidProfile()) {
OS << "Total back edge count: " << L->TotalBackEdgeCount << "\n";
Expand Down
6 changes: 3 additions & 3 deletions bolt/lib/Passes/AllocCombiner.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ namespace {

bool getStackAdjustmentSize(const BinaryContext &BC, const MCInst &Inst,
int64_t &Adjustment) {
return BC.MIB->evaluateSimple(Inst, Adjustment,
std::make_pair(BC.MIB->getStackPointer(), 0LL),
std::make_pair(0, 0LL));
return BC.MIB->evaluateStackOffsetExpr(
Inst, Adjustment, std::make_pair(BC.MIB->getStackPointer(), 0LL),
std::make_pair(0, 0LL));
}

bool isIndifferentToSP(const MCInst &Inst, const BinaryContext &BC) {
Expand Down
4 changes: 2 additions & 2 deletions bolt/lib/Passes/ShrinkWrapping.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ void StackLayoutModifier::checkFramePointerInitialization(MCInst &Point) {
SP = std::make_pair(0, 0);

int64_t Output;
if (!BC.MIB->evaluateSimple(Point, Output, SP, FP))
if (!BC.MIB->evaluateStackOffsetExpr(Point, Output, SP, FP))
return;

// Not your regular frame pointer initialization... bail
Expand Down Expand Up @@ -294,7 +294,7 @@ void StackLayoutModifier::checkStackPointerRestore(MCInst &Point) {
SP = std::make_pair(0, 0);

int64_t Output;
if (!BC.MIB->evaluateSimple(Point, Output, SP, FP))
if (!BC.MIB->evaluateStackOffsetExpr(Point, Output, SP, FP))
return;

// If the value is the same of FP, no need to adjust it
Expand Down
2 changes: 1 addition & 1 deletion bolt/lib/Passes/StackAllocationAnalysis.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ BitVector StackAllocationAnalysis::computeNext(const MCInst &Point,
else
FP = std::make_pair(0, 0);
int64_t Output;
if (!MIB->evaluateSimple(Point, Output, SP, FP))
if (!MIB->evaluateStackOffsetExpr(Point, Output, SP, FP))
return Next;

if (SPOffset < Output) {
Expand Down
4 changes: 2 additions & 2 deletions bolt/lib/Passes/ValidateInternalCalls.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -261,8 +261,8 @@ bool ValidateInternalCalls::analyzeFunction(BinaryFunction &Function) const {
int64_t Output;
std::pair<MCPhysReg, int64_t> Input1 = std::make_pair(Reg, 0);
std::pair<MCPhysReg, int64_t> Input2 = std::make_pair(0, 0);
if (!BC.MIB->evaluateSimple(Use, Output, Input1, Input2)) {
LLVM_DEBUG(dbgs() << "Evaluate simple failed.\n");
if (!BC.MIB->evaluateStackOffsetExpr(Use, Output, Input1, Input2)) {
LLVM_DEBUG(dbgs() << "Evaluate stack offset expr failed.\n");
return false;
}
if (Offset + Output < 0 ||
Expand Down
17 changes: 4 additions & 13 deletions bolt/lib/Target/X86/X86MCPlusBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1244,9 +1244,10 @@ class X86MCPlusBuilder : public MCPlusBuilder {
return false;
}

bool evaluateSimple(const MCInst &Inst, int64_t &Output,
std::pair<MCPhysReg, int64_t> Input1,
std::pair<MCPhysReg, int64_t> Input2) const override {
bool
evaluateStackOffsetExpr(const MCInst &Inst, int64_t &Output,
std::pair<MCPhysReg, int64_t> Input1,
std::pair<MCPhysReg, int64_t> Input2) const override {

auto getOperandVal = [&](MCPhysReg Reg) -> ErrorOr<int64_t> {
if (Reg == Input1.first)
Expand All @@ -1260,16 +1261,6 @@ class X86MCPlusBuilder : public MCPlusBuilder {
default:
return false;

case X86::AND64ri32:
case X86::AND64ri8:
if (!Inst.getOperand(2).isImm())
return false;
if (ErrorOr<int64_t> InputVal =
getOperandVal(Inst.getOperand(1).getReg()))
Output = *InputVal & Inst.getOperand(2).getImm();
else
return false;
break;
case X86::SUB64ri32:
case X86::SUB64ri8:
if (!Inst.getOperand(2).isImm())
Expand Down
Loading