Skip to content

LLVM and SPIRV-LLVM-Translator pulldown (WW24) #6249

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

Merged
merged 2,634 commits into from
Jun 4, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2634 commits
Select commit Hold shift + click to select a range
f3bdb56
[mlir][math] Add math.ctlz expansion to control flow + arith operations
rsuderman Jun 1, 2022
f570906
[lld/mac] Cache file IDs of symbols in emitStabs for faster sorting
michaeleisel Jun 1, 2022
815825f
[lld/mac] clang-format after f5709066e3b
nico Jun 1, 2022
10c4eec
[NFC][libc++][format] Improves naming.
mordante May 14, 2022
128ffb3
Revert "[Driver][Modules] Remove dependence on linking support from c…
adrian-prantl Jun 1, 2022
c84b9bb
Revert "[NFC] Use %clang instead of %clang++ in tests"
adrian-prantl Jun 1, 2022
d951ca5
Revert "[Driver] Enable to use C++20 standalne by -fcxx-modules"
adrian-prantl Jun 1, 2022
430ac5c
[ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4.
May 6, 2022
9e3919d
[Object][DX] Parse DXContainer Parts
llvm-beanz May 2, 2022
72aca94
[LV] Add additional tests for pointer select support.
fhahn Jun 1, 2022
e9d05cc
Revert "[ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4."
Jun 1, 2022
5d005d8
Refactor PS4OSTargetInfo into a base class and PS4 subclass; prep for…
pogo59 Jun 1, 2022
8869ba3
[PS5] Add PS5OSTargetInfo class, update affected tests
pogo59 Jun 1, 2022
129c056
[ObjectYAML][DX] Support yaml2dxcontainer
llvm-beanz Jun 1, 2022
4bc6385
[gn build] Port 129c056d6269
llvmgnsyncbot Jun 1, 2022
0426100
[BOLT][NFC] Remove unused variable
maksfb Jun 1, 2022
f2ee0a3
[flang][NFC] Document intentional non-support for an extension
klausler Jun 1, 2022
7b759d6
Temporarily disabling this test on arm
llvm-beanz Jun 1, 2022
d9de528
[bazel] Add a missing dependency after f3bdb56d61e3
d0k Jun 1, 2022
d53de9b
update_mir_test_checks: Better handling of common prefixes
nhaehnle May 24, 2022
38fb7d5
[BOLT][TEST] Replace cache+ option with ext-tsp
nhuhuan Jun 1, 2022
0848283
[LV] Update var name to Exiting, in line with terminology (NFC)
fhahn Jun 1, 2022
b364c76
[mlir][sparse] Using non-empty function name suffix for OverheadType:…
wrengr May 31, 2022
902360d
Temporarily disabling this test on arm
llvm-beanz Jun 1, 2022
6232a8f
[mlir][sparse][NFC] Switch InitOp to bufferization::AllocTensorOp
matthias-springer Jun 1, 2022
8c8a267
[clang][AIX] add option mdefault-visibility-export-mapping
daltenty May 10, 2022
909a78b
[RISCV] Use MachineRegisterInfo::use_instr_begin instead of use_begin…
topperc Jun 1, 2022
afd2f7e
[Binary] Promote OffloadBinary to inherit from Binary
jhuber6 Jun 1, 2022
73020b4
Revert "[SLP]Improve shuffles cost estimation where possible."
alexey-bataev Jun 1, 2022
f15add7
[RISCV] Split fixed-vector-strided-load-store.ll so it can be autogened
preames Jun 1, 2022
eb673be
[OMPIRBuilder] Add the support for compare capture
shiltian Jun 1, 2022
2108f7a
[Object] Fix namespace style issues in D122069
MaskRay Jun 2, 2022
1a155ee
[RegisterClassInfo] Invalidate cached information if ignoreCSRForAllo…
Jun 2, 2022
8d3dda7
[Polly] Fix -Wreorder-ctor. NFC
MaskRay Jun 2, 2022
a92ed16
[ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4.
Jun 2, 2022
850d53a
LTO: Decide upfront whether to use opaque/non-opaque pointer types
MatzeB May 18, 2022
89b1808
AMDGPU: Fix missing c++ mode comment
arsenm May 18, 2022
09a539e
AMDGPU: Add release notes about atomic load and store
arsenm May 4, 2022
4cb722a
BranchFolder: Require NoPHIs
arsenm Apr 22, 2022
ab9a175
[BOLT][DWARF] Fix TU Index handling for DWARF4/5
ayermolo Jun 2, 2022
6784adc
Fix DXContainer test on ppcbe
llvm-beanz Jun 2, 2022
93a375a
[libc++][test] Enable constexpr string comparison tests
JoeLoser May 31, 2022
70c8d12
[libc] Add pthread_create and pthread_join functions.
May 25, 2022
fe0f2c1
Fix compilation in gold-plugin triggered by D125847
MatzeB Jun 2, 2022
962db7d
[memprof] Update summary output.
snehasish Jun 1, 2022
058791d
[LegalizeTypes][VP] Add widen and split support for VP_SIGN_EXTEND an…
May 26, 2022
8a87f42
[memprof] Print out the segment information in YAML format.
snehasish Jun 1, 2022
4463bd0
unbreak Modules/cxx20-export-import.cpp with LLVM_APPEND_VC_REV after…
nico Jun 2, 2022
13b8bfc
[libunwind] Add more information to eh_frame_hdr version error
fmayer Jun 1, 2022
146f7fe
[test] Fix LLVMgold.so tests after D125847
MaskRay Jun 2, 2022
ce82037
[mlir] Support convert token type from LLVM IR.
Jun 1, 2022
6eab5ca
[LSR] Early exit for RateFormula when it is already losing. NFC
Jun 2, 2022
b418ef5
[clang-tidy] Reject invalid enum initializers in C files
LegalizeAdulthood May 14, 2022
a15ae41
[libc++] Make to_chars base 10 header only.
mordante May 16, 2022
b3d1142
[libc++][doc] Fixes unwanted list nesting.
mordante Jun 2, 2022
11d8bc9
[gn build] Port a15ae4139cea
llvmgnsyncbot Jun 2, 2022
fde9ef5
[NFC][workflow] Fix issue where the workflow would say all PR's alrea…
tru Jun 2, 2022
8a1250f
[LoongArch] Fix register type in FCMP_*_D instructions definition
SixWeining Jun 2, 2022
19e2854
[mlir][Arithmetic] Add constant folder for RemF.
May 20, 2022
51c20e5
[BOLT][UTILS] Add dot2html helper tool to embed dot into html
aaupov Jun 2, 2022
cc23c64
[BOLT][NFC] Print block instructions in dumpGraph as part of node label
aaupov Jun 2, 2022
cfeacec
[LoongArch] Add the missing ld.d instruction definition
SixWeining Jun 2, 2022
c6ad690
[lldb, test] Fix typos in the lldb tests
RamNalamothu Jun 2, 2022
6333e5d
[BOLT][NFC] Use colors in CFG dumps
aaupov Jun 2, 2022
41d5033
[IR] Enable opaque pointers by default
nikic May 31, 2022
5b2a734
[IRTests] With opaque ptrs we can test that there is no bitcast inserted
d0k Jun 2, 2022
0e286b7
[clang][dataflow] Add transfer functions for structured bindings
sgatev Feb 24, 2022
db15e31
[clang-format] Handle do-while loops for RemoveBracesLLVM
owenca Jun 1, 2022
4b13b06
[mlir][complex] Sanity check for tan operation in complex dialect
Lewuathe Jun 2, 2022
3ed6fc9
[llvm-ocaml] Add LLVMBuildCall2 binding
nikic Jun 2, 2022
9f0869a
[mlir][complex] Lower complex.sin/cos to libm
Lewuathe Jun 2, 2022
5482ae6
[LegalizeTypes][VP] Add widen and split support for VP FP integer cas…
Jun 2, 2022
d8e67c1
[ARM] Add SEH opcodes in frame lowering
mstorsjo Nov 26, 2021
2ab19bf
[ARM] Adjust the frame pointer when it's needed for SEH unwinding
mstorsjo Nov 26, 2021
668bb96
[ARM] Implement lowering of the sponentry intrinsic
mstorsjo May 19, 2022
f730749
[clang] [ARM] Add __builtin_sponentry like on aarch64
mstorsjo May 19, 2022
81e4441
[analyzer][NFC] Move overconstrained check from reAssume to assumeDua…
May 31, 2022
42358b6
[llvm-ocaml] Add and use opaque pointer compatible bindings
nikic Jun 2, 2022
9245c49
[ARM] Fix a test case typo. NFC.
mstorsjo Jun 2, 2022
9e40f53
Merge from 'sycl' to 'sycl-web'
Jun 2, 2022
e3bfd7e
[flang] Update tests for opaque pointers
nikic Jun 2, 2022
f09b0c8
[flang] Update memcpy intrinsic mangling for opaque pointers
nikic Jun 2, 2022
bd92b7b
[OrcV2Examples] Fix test with opaque pointers
nikic Jun 2, 2022
1fe4953
[SVE] Remove custom lowering of scalable vector MGATHER & MSCATTER op…
paulwalker-arm Feb 7, 2022
b0ce6a0
[Docs] Update default in opaque pointer docs (NFC)
nikic Jun 2, 2022
35f0890
[clang-tidy] Remove extra ";" in ModernizeModuleTest.cpp
mikaelholmen Jun 2, 2022
4f1c86e
[VPlan] Remove dead VPlan-native special case from BranchOnCount (NFC).
fhahn Jun 2, 2022
53efdf3
Fix llvm.memset semantics description
gchatelet Jun 2, 2022
3119677
[mlir][SCF] Add scf.foreach_thread.parallel_insert_slice canonicaliza…
nicolasvasilache Jun 2, 2022
7291122
[flang][docs] Document CMake support
banach-space May 31, 2022
c745f2c
Revert "Drop qualifiers from return types in C (DR423)"
AaronBallman Jun 2, 2022
30ad481
Revert "cmake: use llvm dir variables for clang/utils/hmaptool"
nikic Jun 2, 2022
e2ac99b
[flang] Add check for conflict of BIND(C) and Parameter attributes
PeixinQiao Jun 2, 2022
dfaee3c
[libunwind][ci][AIX] Add libunwind to buildbot CI
xingxue-ibm Jun 2, 2022
d42fe9a
Revert "[clang][AIX] add option mdefault-visibility-export-mapping"
zmodem Jun 2, 2022
ce2e198
[mlir] add decompose and generalize to structured transform ops
ftynse May 31, 2022
b2c6251
[PS5] Support r and y specifiers of freebsd_kernel_printf format strings
pogo59 Jun 2, 2022
e374216
Revert "unbreak Modules/cxx20-export-import.cpp with LLVM_APPEND_VC_R…
nico Jun 2, 2022
0b46121
Update more DR status information for C.
AaronBallman Jun 2, 2022
6bdf352
[Binary] Remove OffloadBinary from the Objects enumeration
jhuber6 Jun 2, 2022
48ea26a
[SVE] Fixed custom lowering of ISD::INSERT_SUBVECTOR.
paulwalker-arm May 22, 2022
4d73c46
[MCParser] Set default alignment value when meeting invalid align
May 16, 2022
50de7f1
[llvm][ModuleInliner] Refactor InlineSizePriority and PriorityInlineO…
taoliq Jun 2, 2022
f9b8f42
[lldb][NFC] Move generic DWARFASTParser code out of Clang-specific code
ljmf00 Jun 2, 2022
883b09b
[gn build] Port f9b8f422e711
llvmgnsyncbot Jun 2, 2022
5a6352b
Tidy up `pragma comment lib` handling and testing
pogo59 Jun 2, 2022
6423a9f
[libc++][test] Enable some more string_view tests
JoeLoser Jun 2, 2022
dcdb0bf
[RISCV] Fix an inconsistency with compatible load/store handling
preames Jun 2, 2022
89818f2
[libc++] Lets to_chars use header implementation.
mordante May 16, 2022
5c6ed60
Revert "[llvm][ModuleInliner] Refactor InlineSizePriority and Priorit…
taoliq Jun 2, 2022
14e8add
[llvm][ModuleInliner] Refactor InlineSizePriority and PriorityInlineO…
taoliq Jun 2, 2022
e27ce28
[OpenMP][libomp] Make LIBOMP_CONFIGURED_LIBFLAGS a list instead of st…
msimberg Jun 2, 2022
2ba5d82
[OpenMP] omp_get_proc_id uses sched_getcpu fallback on FreeBSD 13.1 a…
devnexen Jun 2, 2022
3da4f9c
[lldb][NFC] Move non-clang specific method to the generic DWARF Parser
ljmf00 Jun 2, 2022
01ba470
[RISCV] Add test case showing unnecessary extend after i32 smax on rv…
topperc Jun 2, 2022
5fee179
[mlir] translate memref.reshape with static shapes but dynamic dims
ashay May 29, 2022
7b291b6
[libc++] Fix typo in comment at __optional_storage_base
hawkinsw Jun 2, 2022
33ca5a4
[analyzer][NFC] Add partial specializations for ProgramStateTraits
Jun 2, 2022
cf1f1b7
[analyzer][NFC] Uplift checkers after D126801
Jun 2, 2022
7d24641
[llvm][analyzer][NFC] Introduce SFINAE for specializing FoldingSetTraits
Jun 2, 2022
cc756f9
[PS5] Classify __m64 as integer, matching PS4 ABI
pogo59 Jun 2, 2022
dc5175a
[PS5] Make passing unions in registers match PS4 ABI
pogo59 Jun 2, 2022
e4870c8
[AMDGPU] gfx11 ds instructions
Sisyph May 12, 2022
35ab2a1
Fix a buglet in remove_dots().
EmployedRussian Jun 2, 2022
4c1e487
scan-build-py: Change scripts to explicitly require python3
wanders May 9, 2022
9980c99
[SLP]Improve shuffles cost estimation where possible.
alexey-bataev Dec 9, 2021
2aeffc6
[mlir:MultiOpDriver] Don't add ops which are not in the allowed list
ChiaHungDuan Jun 2, 2022
3732cd5
[AMDGPU] gfx11 vop3 and inherited vop instructions
Sisyph May 16, 2022
8eed95c
Adapt IRForTarget::RewriteObjCSelector() for D126689.
adrian-prantl Jun 2, 2022
bf7dbc2
[mlir][sparse][bufferization] fix doc on new init operation
aartbik Jun 2, 2022
44c86e5
[GVN] Add test for capture tracking use limit.
fhahn Jun 2, 2022
bb7835e
[PS5] Apply 'packed' attribute to base classes, matching PS4 ABI
pogo59 Jun 2, 2022
30b7ffe
[PS5] Pack non-POD members in packed structs, matching PS4 ABI
pogo59 Jun 2, 2022
5d25dbf
[OpenMP][libomp] do not try to dlopen libmemkind on macOS
Jun 2, 2022
4be36dc
[libc++][test] Fix unused variable warning in string_view tests
JoeLoser Jun 2, 2022
fa20bf1
[DAGCombiner][RISCV] Improve computeKnownBits for (smax X, C) where C…
topperc Jun 2, 2022
986e5de
[BOLT][NFC] Fix braces in BinaryEmitter
maksfb Jun 2, 2022
8689463
[InstCombine] make pattern matching more consistent; NFC
rotateright Jun 2, 2022
1882c25
[InstCombine] add tests for mul with low-bit mask operand; NFC
rotateright Jun 2, 2022
6bea9ff
[HLSL] Add WaveActiveCountBits as Langugage builtin function for HLSL
python3kgae Jun 2, 2022
76ac916
[RISCV] Inline one copy of needVSETVLI into the other [NFC]
preames Jun 2, 2022
e7b929d
Adapt IRForTarget::RewriteObjCConstStrings() for D126689.
adrian-prantl Jun 2, 2022
8601f26
[Inline][Remark][NFC] Optionally provide inline context to inline
mingmingl-llvm Jun 1, 2022
1350c98
[mlir] Add integer range inference analysis
krzysz00 Jun 2, 2022
dfa9221
[docs] Mention LLVMContext::setOpaquePointers for C++ API
MaskRay Jun 2, 2022
e09f77d
[ELF] Remove support for legacy .zdebug sections
MaskRay Jun 2, 2022
78c6b14
[CaptureTracking] Increase limit and use it for all visited uses.
fhahn Jun 2, 2022
dbead23
[RISCV] Add custom isel for (add X, imm) used by load/stores.
topperc Jun 2, 2022
cb08f4a
Support warn_unused_result on typedefs
dwblaikie May 9, 2021
4e1b890
cmake fill `cmake_args` when cross-compiling external project with no…
lxbndr Jun 1, 2022
2dfe419
[AMDGPU] Improve codegen of extractelement/insertelement in some cases
Jun 2, 2022
dd7e407
AMDGPU: Move SpilledReg from MFI to SIRegisterInfo
arsenm Jun 2, 2022
4e5ce20
Revert "[mlir] Add integer range inference analysis"
joker-eph Jun 2, 2022
aa1cdf8
[PS5] Ignore 'packed' on one-byte bitfields, matching PS4
pogo59 Jun 2, 2022
3a96256
[Clang][OpenMP] Avoid using `IgnoreImpCasts` if possible
shiltian Jun 2, 2022
4ad17d2
Clean "./" from __FILE__ expansion.
EmployedRussian Jun 2, 2022
9221f84
Merge from 'main' to 'sycl-web' (620 commits)
dwoodwor-intel Jun 2, 2022
0063344
[LoopInterchange] New cost model for loop interchange
CongzheUalberta Jun 2, 2022
987f9cb
[clang-tidy] Add proper emplace checks to modernize-use-emplace
nicovank Jun 2, 2022
633ad1d
[mlir:MultiOpDriver] Quick fix the assertion position
ChiaHungDuan Jun 2, 2022
8bc2cff
[MLIR][Presburger] Simplex: remove redundant member vars nRow, nCol
Superty Jun 2, 2022
bf352e0
[mlir:PDLL] Add better support for providing Constraint/Pattern/Rewri…
River707 May 3, 2022
bb81b3b
[vscode-mlir] Bump to version 0.8
River707 Jun 2, 2022
b64f6e5
Add a release note for the scope enum initialization bug fix in
ahatanaka Jun 3, 2022
f8b692d
[mlir][python][f16] add ctype python binding support for f16
aartbik Jun 2, 2022
66e0899
[Sema] Reject list-initialization of enumeration types from a
ahatanaka May 20, 2022
48d6a6c
[OpenMP][NFC] update status for 'omp_all_memory' directive to 'done'
mikerice1969 Jun 3, 2022
f1940a5
Revert "[LoopInterchange] New cost model for loop interchange"
Jun 3, 2022
65a8419
[BOLT][DOCS] Add PACKAGE_VERSION to doxygen config
aaupov May 23, 2022
c4a90db
[Clang][OpenMP] Add the codegen support for `atomic compare capture`
shiltian Jun 3, 2022
b917433
[NFC][Doc] Finish atomic compare
shiltian Jun 3, 2022
e2142ff
[BOLT][NFC] Make ICP::verifyProfile static
aaupov Jun 3, 2022
ee1cf1f
[mlir][NFC] Simplify the various `parseSourceFile<T>` overloads
River707 Jun 2, 2022
0e33d45
Remove INTEL tag from lit-tests
HaohaiWen Jun 3, 2022
8d84684
[llvm-c][test] Convert tests to opaque pointers
MaskRay Jun 3, 2022
e33af27
[llvm-c-test] Default to opaque pointers
MaskRay Jun 3, 2022
1d67adb
[RISCV] Give CSImm12MulBy4 PatLeaf priority over CSImm12MulBy8. NFC
topperc Jun 3, 2022
205c08b
[mlir][scf] Add option to loop pipelining to not peel the epilogue
ThomasRaoux Jun 1, 2022
c4d955d
[MachineSSAUpdate] Add a test for redundant phi generation.
May 27, 2022
271a48e
[mlir][VectorToGPU] Fix bug generating incorrect ldmatrix ops
ThomasRaoux Jun 3, 2022
78b16cc
[M68k] Instruction selection to choose neg x when mul x -1 (Fix issue…
dougpuob Jun 3, 2022
614567a
[libc] Automatically add -mfma flag for architectures supporting FMA.
lntue May 8, 2022
24e16e4
[SSAUpdaterImpl] Do not generate phi node with all the same incoming …
May 27, 2022
8555e59
[NFC][MemDep] Remove unnecessary Worklist.clear
xortator Jun 3, 2022
4723124
[LLVM][Docs] Update for HowToSetUpLLVMStyleRTTI.rst, NFC.
bzcheeseman Jun 3, 2022
b34fb27
[mlir][cf] Implement missing SwitchOp::build function
alexbatashev Jun 3, 2022
9f97720
[clang][driver] Dynamically select gcc-toolset/devtoolset
tbaederr May 18, 2022
40c937c
[ARM] Fix restoring stack for varargs with SEH split frame pointer push
mstorsjo Jun 2, 2022
e8402d5
[clang] [MSVC] Enable unwind tables for ARM
mstorsjo May 2, 2022
0d21863
[Driver] Add multiarch path for RISC-V
hahnjo May 30, 2022
72de758
[mlir][SCF] Add bufferization hook for scf.foreach_thread and termina…
nicolasvasilache Jun 3, 2022
df0f30d
Revert "[SLP]Improve shuffles cost estimation where possible."
MaskRay Jun 3, 2022
8b90b25
[clang-tidy] `bugprone-use-after-move`: Fix handling of moves in lamb…
martinboehme Jun 3, 2022
a459d1e
[clang][sema] Remove unused paramter from VerifyBitField
tbaederr Jun 3, 2022
c698189
[NFC] Format CGBuilder.h
gchatelet Jun 3, 2022
ad742cf
[DAGCombine] Handle promotion of shift with both operands the same
nikic Jun 2, 2022
f5d29c1
[mlir][OpenMP] Add memory_order clause tests
shraiysh Jun 3, 2022
7ce8c59
[flang][test-suite] Document need for NO_STOP_MESSAGE environment var…
rovka May 25, 2022
f31797f
[cmake] Fix typo in CrossCompile.cmake
hahnjo Jun 3, 2022
a29a1a3
[libc++] Fix conjunction/disjunction and mark a few LWG issues as com…
philnik777 Jun 3, 2022
b50542f
[clang-tidy] Add missing close quote in release notes.
martinboehme Jun 3, 2022
1523e8b
[gn build] Port a29a1a33ac7b
llvmgnsyncbot Jun 3, 2022
8b18572
[docs] Fix RST code-block syntax in HowToSetUpLLVMStyleRTTI.rst
kbeyls Jun 3, 2022
b94db7e
[clang-tidy] Confusable identifiers detection
Oct 15, 2021
79e3b04
[AArch64] Add extra addp codegen tests. NFC
davemgreen Jun 3, 2022
39f2839
[mlir] Fix ClangTidy warning (NFC).
akuegel Jun 3, 2022
a5bb4a3
[VPlan] Replace CondBit with BranchOnCond VPInstruction.
fhahn Jun 3, 2022
fe65c56
[VPlan] Update failing HCFG unit tests after a5bb4a3b4d3db.
fhahn Jun 3, 2022
2dde272
[SVE] Refactor sve-bitcast.ll to include all combinations for legal t…
paulwalker-arm May 31, 2022
e8e4b74
[DAGCombiner] Add bf16 to the matrix of types that we don't promote t…
d0k Jun 3, 2022
8df2b1a
[pp-trace] Print HashLoc in InclusionDirective callback
oToToT May 10, 2022
180bae0
[gn build] (manually) port b94db7ed7eaf (Confusables.inc)
nico Jun 3, 2022
6b7c186
[VPlan] Inline variable into assertion. NFC.
d0k Jun 3, 2022
d4141c9
[mlir][complex] Check the correctness of tanh in complex dialect
Lewuathe Jun 3, 2022
a8d2a38
[VPlan] Silence another unused variable warning in release builds
d0k Jun 3, 2022
166f9be
Update old mailing list link in the nullability doc
zmodem Jun 3, 2022
6baf44c
[SCCP] Regenerate test checks (NFC)
nikic Jun 3, 2022
3472b6e
Updating more entries in the C DR Status page
AaronBallman Jun 3, 2022
fcdc6a4
[SCCP] Regenerate test checks with function signature (NFC)
nikic Jun 3, 2022
1896df1
Correct the behavior of this test for non-Windows targets
AaronBallman Jun 3, 2022
aed179f
[lldb] [Process/FreeBSD] Do not send SIGSTOP to stopped process
mgorny Jun 1, 2022
88052fd
check_clang_tidy.py: Update run line to python3
nico Jun 3, 2022
371e6f8
Revert "[clang-tidy] Confusable identifiers detection"
nico Jun 3, 2022
65e710c
[clang][dataflow] Model calls returning optionals
sgatev Jun 1, 2022
5c902af
[coro async] Add code to support dynamic aligment of over-aligned typ…
aschwaighofer May 27, 2022
efbf013
Only issue warning for subtraction involving null pointers on live co…
jamieschmeiser Jun 3, 2022
f0baf72
Disable opaque pointers by default for LTO backend
HaohaiWen Jun 3, 2022
10f7255
[gn build] Extract compiled_action.gni from tablegen.gni
nico Jun 3, 2022
fa7b4cf
[docs] Remove a link to an outdated Go docs
JohnTitor Jun 2, 2022
cac6094
[SLP]Improve shuffles cost estimation where possible.
alexey-bataev Dec 9, 2021
bb94611
[COFF] Check table ptr more thoroughly and ignore empty sections
alvinhochun Jun 3, 2022
3a25280
[COFF] Fix -Wredundant-move
d0k Jun 3, 2022
4402852
[RISCV] Reduce scalar load/store isel patterns to a single ComplexPat…
topperc Jun 3, 2022
5904836
[BOLT] Cache-Aware Tail Duplication
Jun 3, 2022
dd6bcdb
[Attributes] Remove AttrSyntax and migrate uses to AttributeCommonInf…
speednoisemovement Jun 2, 2022
d244c5d
Merge from 'sycl' to 'sycl-web'
Jun 3, 2022
5be4262
Merge from 'main' to 'sycl-web' (166 commits)
dwoodwor-intel Jun 3, 2022
ff19913
Disable test after LLVM change
svenvh May 31, 2022
139b7d1
[Upstream] Fix number of new issues comming from upstream
Jun 3, 2022
3617239
Merge remote-tracking branch 'otcshare/sycl-web' into pulldown
Jun 4, 2022
98d7a48
Remove LowerSPIRBlocks pass, as it appears to be obsolete.
jcranmer-intel May 9, 2022
38e846c
Make the LowerBitCast pass support opaque pointers.
jcranmer-intel May 4, 2022
2b0f717
Avoid excess runs of OCLTypeToSPIRV
svenvh May 19, 2022
201b40f
Fix mangled names in test
svenvh May 19, 2022
8885175
Remove function pointer cast deletion in SPIRVRegularizeLLVM.
jcranmer-intel May 18, 2022
0ec7507
Remove a few more getPointerElementType() calls.
jcranmer-intel May 9, 2022
4d0c0f7
Fix out-of-tree build by installing mlir-tools
svenvh May 23, 2022
31fa6c1
Preparations to rename the default branch
MrSidims Mar 26, 2022
012d497
Update for branch rename
svenvh May 31, 2022
828d2ab
Fix some typos
svenvh May 31, 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.
2 changes: 1 addition & 1 deletion bolt/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ Once you have `perf.fdata` ready, you can use it for optimizations with
BOLT. Assuming your environment is setup to include the right path, execute
`llvm-bolt`:
```
$ llvm-bolt <executable> -o <executable>.bolt -data=perf.fdata -reorder-blocks=cache+ -reorder-functions=hfsort -split-functions=2 -split-all-cold -split-eh -dyno-stats
$ llvm-bolt <executable> -o <executable>.bolt -data=perf.fdata -reorder-blocks=ext-tsp -reorder-functions=hfsort -split-functions=2 -split-all-cold -split-eh -dyno-stats
```

If you do need an updated debug info, then add `-update-debug-sections` option
Expand Down
2 changes: 1 addition & 1 deletion bolt/docs/OptimizingClang.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ Notice that we are passing `clang-7` to `perf2bolt` which is the real binary tha
the generated profile:
```bash
$ llvm-bolt $CPATH/clang-7 -o $CPATH/clang-7.bolt -b clang-7.yaml \
-reorder-blocks=cache+ -reorder-functions=hfsort+ -split-functions=3 \
-reorder-blocks=ext-tsp -reorder-functions=hfsort+ -split-functions=3 \
-split-all-cold -dyno-stats -icf=1 -use-gnu-stack
```
The output will look similar to the one below:
Expand Down
2 changes: 1 addition & 1 deletion bolt/docs/doxygen.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ PROJECT_NAME = "BOLT"
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER =
PROJECT_NUMBER = @PACKAGE_VERSION@

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
23 changes: 20 additions & 3 deletions bolt/include/bolt/Core/BinaryContext.h
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,13 @@ inline raw_ostream &operator<<(raw_ostream &OS, const SegmentInfo &SegInfo) {
return OS;
}

// AArch64-specific symbol markers used to delimit code/data in .text.
enum class MarkerSymType : char {
NONE = 0,
CODE,
DATA,
};

enum class MemoryContentsType : char {
UNKNOWN = 0, /// Unknown contents.
POSSIBLE_JUMP_TABLE, /// Possibly a non-PIC jump table.
Expand Down Expand Up @@ -549,6 +556,9 @@ class BinaryContext {

std::unique_ptr<MCDisassembler> DisAsm;

/// Symbolic disassembler.
std::unique_ptr<MCDisassembler> SymbolicDisAsm;

std::unique_ptr<MCAsmBackend> MAB;

/// Indicates if relocations are available for usage.
Expand Down Expand Up @@ -662,6 +672,11 @@ class BinaryContext {
TheTriple->getArch() == llvm::Triple::x86_64;
}

// AArch64-specific functions to check if symbol is used to delimit
// code/data in .text. Code is marked by $x, data by $d.
MarkerSymType getMarkerType(const SymbolRef &Symbol) const;
bool isMarker(const SymbolRef &Symbol) const;

/// Iterate over all BinaryData.
iterator_range<binary_data_const_iterator> getBinaryData() const {
return make_range(BinaryDataMap.begin(), BinaryDataMap.end());
Expand Down Expand Up @@ -1187,18 +1202,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
57 changes: 57 additions & 0 deletions bolt/include/bolt/Core/BinaryDomTree.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
//==- bolt/Core/BinaryDomTree.h - Dominator Tree at low-level IR -*- C++ -*-==//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// This file defines the BinaryDomTree class, which represents a dominator tree
// in the CFG of a binary function.
//
//===----------------------------------------------------------------------===//

#ifndef BOLT_CORE_BINARY_DOMTREE_H
#define BOLT_CORE_BINARY_DOMTREE_H

#include "llvm/Support/GenericDomTreeConstruction.h"

namespace llvm {
namespace bolt {

class BinaryBasicBlock;
using BinaryDomTreeNode = DomTreeNodeBase<BinaryBasicBlock>;
using BinaryDominatorTree = DomTreeBase<BinaryBasicBlock>;

} // namespace bolt

// BinaryDominatorTree GraphTraits specializations.
template <>
struct GraphTraits<bolt::BinaryDomTreeNode *>
: public DomTreeGraphTraitsBase<bolt::BinaryDomTreeNode,
bolt::BinaryDomTreeNode::iterator> {};

template <>
struct GraphTraits<const bolt::BinaryDomTreeNode *>
: public DomTreeGraphTraitsBase<const bolt::BinaryDomTreeNode,
bolt::BinaryDomTreeNode::const_iterator> {};

template <>
struct GraphTraits<bolt::BinaryDominatorTree *>
: public GraphTraits<bolt::BinaryDomTreeNode *> {
static NodeRef getEntryNode(bolt::BinaryDominatorTree *DT) {
return DT->getRootNode();
}

static nodes_iterator nodes_begin(bolt::BinaryDominatorTree *N) {
return df_begin(getEntryNode(N));
}

static nodes_iterator nodes_end(bolt::BinaryDominatorTree *N) {
return df_end(getEntryNode(N));
}
};

} // namespace llvm

#endif
17 changes: 9 additions & 8 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 Expand Up @@ -836,6 +833,15 @@ class BinaryFunction {
return make_range(JumpTables.begin(), JumpTables.end());
}

/// Return relocation associated with a given \p Offset in the function,
/// or nullptr if no such relocation exists.
const Relocation *getRelocationAt(uint64_t Offset) const {
assert(CurrentState == State::Empty &&
"Relocations unavailable in the current function state.");
auto RI = Relocations.find(Offset);
return (RI == Relocations.end()) ? nullptr : &RI->second;
}

/// Returns the raw binary encoding of this function.
ErrorOr<ArrayRef<uint8_t>> getData() const;

Expand Down Expand Up @@ -1951,11 +1957,6 @@ class BinaryFunction {
return ColdLSDASymbol;
}

/// True if the symbol is a mapping symbol used in AArch64 to delimit
/// data inside code section.
bool isDataMarker(const SymbolRef &Symbol, uint64_t SymbolSize) const;
bool isCodeMarker(const SymbolRef &Symbol, uint64_t SymbolSize) const;

void setOutputDataAddress(uint64_t Address) { OutputDataOffset = Address; }

uint64_t getOutputDataAddress() const { return OutputDataOffset; }
Expand Down
36 changes: 0 additions & 36 deletions bolt/include/bolt/Core/BinaryLoop.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,13 @@
#ifndef BOLT_CORE_BINARY_LOOP_H
#define BOLT_CORE_BINARY_LOOP_H

#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/Analysis/LoopInfoImpl.h"
#include "llvm/Support/GenericDomTreeConstruction.h"

namespace llvm {
namespace bolt {

class BinaryBasicBlock;

using BinaryDomTreeNode = DomTreeNodeBase<BinaryBasicBlock>;
using BinaryDominatorTree = DomTreeBase<BinaryBasicBlock>;

class BinaryLoop : public LoopBase<BinaryBasicBlock, BinaryLoop> {
public:
BinaryLoop() : LoopBase<BinaryBasicBlock, BinaryLoop>() {}
Expand Down Expand Up @@ -62,35 +57,4 @@ class BinaryLoopInfo : public LoopInfoBase<BinaryBasicBlock, BinaryLoop> {
} // namespace bolt
} // namespace llvm

namespace llvm {

// BinaryDominatorTree GraphTraits specializations.
template <>
struct GraphTraits<bolt::BinaryDomTreeNode *>
: public DomTreeGraphTraitsBase<bolt::BinaryDomTreeNode,
bolt::BinaryDomTreeNode::iterator> {};

template <>
struct GraphTraits<const bolt::BinaryDomTreeNode *>
: public DomTreeGraphTraitsBase<const bolt::BinaryDomTreeNode,
bolt::BinaryDomTreeNode::const_iterator> {};

template <>
struct GraphTraits<bolt::BinaryDominatorTree *>
: public GraphTraits<bolt::BinaryDomTreeNode *> {
static NodeRef getEntryNode(bolt::BinaryDominatorTree *DT) {
return DT->getRootNode();
}

static nodes_iterator nodes_begin(bolt::BinaryDominatorTree *N) {
return df_begin(getEntryNode(N));
}

static nodes_iterator nodes_end(bolt::BinaryDominatorTree *N) {
return df_end(getEntryNode(N));
}
};

} // namespace llvm

#endif
Loading