Skip to content

Bump LLVM to green commit 74fb770de9399d7258a8eda974c93610cfde698e from Oct. 31 #5

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 1,320 commits into from
Nov 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1320 commits
Select commit Hold shift + click to select a range
e14f305
[NFC][PhaseOrdering] Add one more test for SROA after partial unroll
LebedevRI Oct 27, 2022
c2403f1
[mlir] Fix asan issue in Vectorization.cpp of Linalg.
pifon2a Oct 27, 2022
e7b360f
[llvm-readelf] --section-details: display SHF_COMPRESSED headers
MaskRay Oct 27, 2022
b3c5f6b
[mlir][python] Include pipeline parse errors in exception message
rkayaith Oct 20, 2022
10da984
[LSR] Drop LSR solution if it is less profitable than baseline
eopXD Sep 28, 2022
2d52283
[libc] add fgets
michaelrj-google Oct 26, 2022
2556ba4
[ObjectYAML] Add support for DXContainer HASH
llvm-beanz Oct 26, 2022
f9f708e
[mlir][CAPI] Allow specifying pass manager anchor
rkayaith Oct 20, 2022
8fa32a7
[RISCV] Fix an obvious CSE opportunity in LSR test case. NFC
topperc Oct 27, 2022
015bc34
[mlir][sparse] fix crash when sparsifying broadcast operations.
Oct 27, 2022
7f93ae8
[clang] Implement -fstrict-flex-arrays=3
bwendling Oct 20, 2022
8469041
[OpenMP][libomptarget] New plugin infrastructure and new CUDA plugin
kevinsala Oct 27, 2022
80b08b6
[mlir][sparse] add a cursor to sparse storage scheme
aartbik Oct 26, 2022
891aaff
[AArch64][SVE2] Add the SVE2.1 pext and ptrue predicate-as-counter in…
david-arm Oct 25, 2022
3232725
Fix whitespace introduced by 891aaff9a8a9997582eac1bb1edb8d4b4e117ef1
david-arm Oct 27, 2022
dad6444
[SLP]Improve analysis of same/alternate code ops and scheduling.
alexey-bataev Dec 28, 2021
7841f55
[mlir][spirv] Add target control to UnifyAliasedResourcePass
antiagainst Oct 27, 2022
06fcd14
[flang] Lower allocate for polymorphic pointer
clementval Oct 27, 2022
ea1e767
[flang] Carry dynamic type when emboxing polymorphic pointer
clementval Oct 27, 2022
c009505
[mlir] Add `parseSymbolName` that doesn't take an attribute list
Oct 25, 2022
a499051
[libc++abi][AIX] Use reserved slot in stack to pass the address of ex…
xingxue-ibm Oct 27, 2022
739b0df
Community calendar: more clearly document how to add events
kbeyls Oct 27, 2022
71ac3ce
[NFC] Remove unused variables
rupprecht Oct 27, 2022
a97eab7
[IR] Allow typed pointers to be used in vector types
MrSidims Oct 27, 2022
fd90f54
[InstCombine] improve efficiency of sub demanded bits; NFC
rotateright Oct 27, 2022
8d35558
[ADT] Simplify hashing for tuples
JoeLoser Oct 27, 2022
488cf10
[clang][Sema][NFC] Remove redundant isTypeValid
troyj-gh Oct 27, 2022
d40f463
Handle an unknown binary platform type in debugserver
jasonmolenda Oct 27, 2022
439209d
[docs] Fix old path for clang-format
jsji Oct 27, 2022
63c27c5
Use getCanonicalFnName for callee name
wlei-llvm Oct 27, 2022
4515dd3
[flang] Remove debug flag added in D136824
clementval Oct 27, 2022
d5a963a
[PseudoProbe] Replace relocation with offset for entry probe.
htyu Oct 17, 2022
7f1b802
[BinaryFormat:Dwarf] Add a couple of DW_IDX_GCC extensions
dwblaikie Oct 27, 2022
e4ec6ce
Clang: Add release note for defaulted-special-members-POD GCC ABI fix
dwblaikie Oct 27, 2022
5c32742
[mlir][sparse] fix typo "admissable" -> "admissible"
aartbik Oct 27, 2022
0cb65b0
Revert "[OpenMP] [OMPIRBuilder] Create a new datatype to hold the uni…
kda Oct 27, 2022
32c512e
[mlir][sparse] code refactoring, move <tid, loop id> -> dim map to Me…
Oct 26, 2022
fb391e4
[libc++abi][AIX] Use reserved slot in stack to pass the address of ex…
xingxue-ibm Oct 27, 2022
17dbd80
[mlir] Fix typo s/utilties/utilities/ (including in file name)
cota Oct 27, 2022
41ed9d0
[Bazel] Add missing C++ style Clang headers and modulemap
aaronmondal Oct 26, 2022
7d4d25c
[lldb-vscode] Don't call SBValue.GetError after generating a summary.
slackito Oct 27, 2022
8ce0c7b
Revert "[SLP]Improve analysis of same/alternate code ops and scheduli…
alexey-bataev Oct 27, 2022
e8433a2
Update docs for -fuse-ctor-homing
amykhuang Oct 18, 2022
01636fb
Fix documentation error in e8433a2b06d5
amykhuang Oct 27, 2022
5e4eec9
[mlir] ODS: emit interface model method at the end of the header
ftynse Oct 21, 2022
b1bc1a1
[mlir][Vector] Introduce the MaskingOpInterface
dcaballe Oct 26, 2022
c3e0903
[mlir][Vector] Introduce the `vector.mask` operation lowering
dcaballe Oct 26, 2022
f7b8f72
[libc++][math.h] Remove unnecessary uses of __promote
philnik777 Oct 27, 2022
2ec51f1
[SLP]Improve analysis of same/alternate code ops and scheduling.
alexey-bataev Dec 28, 2021
3b0f38b
[LLDB][NativePDB] Fix parameter size for member functions LF_MFUNCTION
ZequanWu Oct 18, 2022
01ff511
[AArch64] Optimize memcmp when the result is tested for [in]equality …
vfdff Oct 27, 2022
bc19697
Remove compile-time and runtime checks for SPI in HostInfoMacOSX
jasonmolenda Oct 27, 2022
22a4b33
[mlir][arith] Fix -Wunused-but-set-variable
MaskRay Oct 27, 2022
7aa0968
[flang] Add atomic_fetch_xor to list of intrinsics
ktras Oct 27, 2022
a3646ec
[AMDGPU] Add pseudo wavemode to optimize strict_wqm
perlfu Oct 28, 2022
0e720e6
[X86] Add AVX-IFMA instructions.
FreddyLeaf Oct 28, 2022
764c712
[mlir][spirv] fix Bazel build of Passes.h
cota Oct 28, 2022
e6c23f4
[gn build] Port 0e720e6adad1
llvmgnsyncbot Oct 28, 2022
4ae88a8
[AMDGPU] Refactor debug printing routines for GCNRPTracker
vpykhtin Oct 25, 2022
23f0269
[X86] Add AVX-VNNI-INT8 instructions.
FreddyLeaf Oct 28, 2022
cf953e3
[gn build] Port 23f02693ec58
llvmgnsyncbot Oct 28, 2022
0911e57
[DeviceRTL] Fix incremental build
ye-luo Oct 27, 2022
d81725d
[test] Disable the test with asan
vitalybuka Oct 28, 2022
c8eb932
[PGO] Simplify InstrProfilingRuntime.cpp
Oct 27, 2022
29e4606
[clang-tidy] Skip template ctors in modernize-use-equals-default
alexander-shaposhnikov Oct 28, 2022
5193d0a
[llvm-debuginfo-analyzer] (08/09) - ELF Reader - Disable test.
CarlosAlbertoEnciso Oct 28, 2022
dd1b7b7
[1b/3][ASan][compiler-rt] API for annotating objects memory
Oct 28, 2022
21b8257
[flang] Carry polymoprhic dynamic type when using coordinate_of polym…
clementval Oct 28, 2022
088a816
[DAGCombiner] Use `getAnyExtOrTrunc` instead of TRUNCATE in ExtractVe…
Pierre-vh Oct 28, 2022
fecf067
[AMDGPU] Add EXPENSIVE_CHECK into GCNRPTracker::reset
vpykhtin Oct 27, 2022
9dd01a5
Harmonize cmake_policy() across standalone builds of all projects
mgorny Oct 24, 2022
89f77be
[llvm] [cmake] Silence GNUInstallDirs warning in LLVMInstallSymlink
mgorny Oct 24, 2022
aebde28
[mlir][linalg] Add nicer builders for `map` and `reduce`.
olegshyshkov Oct 27, 2022
08a26a4
[AArch64][SVE2] Add the SVE2.1 extract-and-narrow instructions
david-arm Oct 19, 2022
8d7f884
Revert "[AMDGPU] Add EXPENSIVE_CHECK into GCNRPTracker::reset"
vpykhtin Oct 28, 2022
1dc3937
[lldb/qemu] Stub out process info functions
labath Oct 28, 2022
e82cace
[AArch64][SME] Set fn attributes correctly on __arm_tpidr2_save call.
sdesmalen-arm Oct 28, 2022
042382c
[flang] Fix building against clang dylib
mgorny Oct 24, 2022
256f8b0
[StructurizeCFG][DebugInfo] Maintain DILocations in the branches crea…
jmmartinez Oct 26, 2022
7eef3ea
Revert "[mlir][linalg] Add nicer builders for `map` and `reduce`."
olegshyshkov Oct 28, 2022
9481e4b
[ARM] Use DefaultAttrsIntrinsics
nikic Oct 26, 2022
dfb16bd
Revert "[AArch64] Adjust operand sequence for Add+Sub to combine more…
bcl5980 Oct 28, 2022
b251b60
[mlir][gpu] Unroll ops on vectors which map to intrinsic calls
chsigg Oct 27, 2022
f589e50
[LoongArch] Split SP adjustment
wangleiat Oct 28, 2022
beb9977
[Clang] Improve diagnostic message for loop hint pragma
eopXD Oct 27, 2022
5dd7d2c
[InstCombine] Don't change switch table from desirable to illegal types
davemgreen Oct 28, 2022
acdd576
[mlir][linalg] Fix linalg.transpose region builder.
olegshyshkov Oct 28, 2022
ad89eb5
Revert "Revert "[mlir][linalg] Add nicer builders for `map` and `redu…
olegshyshkov Oct 28, 2022
9bb1e21
[AMDGPU] Clean up calls to MachineOperand::setIsDead and friends. NFC.
jayfoad Oct 27, 2022
4e2364a
[LoongArch] Add emergency spill slot for GPR for large frames
wangleiat Oct 28, 2022
bf07c33
Revert "[clang] Instantiate NTTPs and template default arguments with…
hokein Oct 28, 2022
9932461
[mlir][aarch64] XFAIL correctness.mlir
banach-space Oct 21, 2022
c8a9031
[AMDGPU] Small cleanups in wait counter code
stepthomas Oct 28, 2022
32d5158
IndirectBrExpandPass - remove unused DL from lambda capture. NFC.
RKSimon Oct 28, 2022
dc39819
[AMDGPU] Regenerate checks in waitcnt-overflow.mir. NFC.
jayfoad Oct 28, 2022
3c71253
ConstraintElimination - pass const DataLayout by reference in (recurs…
RKSimon Oct 28, 2022
14384c9
Recommit: [FuncSpec][NFC] Refactor finding specialisation opportunities
momchil-velikov Oct 28, 2022
2a812bd
[lldb][Docs][NFC] Fix sphinx warnings/errors for LLDB docs
Michael137 Oct 26, 2022
888d9e6
[LLD] [COFF] Include "rust_eh_personality" among the known personalit…
mstorsjo Oct 27, 2022
28bfd85
[DAG] visitFSUBForFMACombine - pass callbacks by reference in isContr…
RKSimon Oct 28, 2022
b61e8c5
[clang][Interp][NFC] Add Record::getName()
tbaederr Oct 26, 2022
6e7f421
[clang][Interp][NFC] Fix a file header comment
tbaederr Oct 28, 2022
0ad3ad6
[clang][Interp][NFC] Remove leftover comment fragment
tbaederr Oct 26, 2022
c1dd7f9
[clang][Interp][NFC] Print more info in Program::dump()
tbaederr Oct 27, 2022
6fa1795
[clang][Interp] Implement String- and CharacterLiterals
tbaederr Oct 10, 2022
7f3013c
[clang][Interp][NFC] Fix instance method check
tbaederr Oct 28, 2022
fcfc31f
[InstCombine] Convert some tests to opaque pointers (NFC)
nikic Oct 28, 2022
d47f056
[DAG] visitXOR - fold XOR(A,B) -> OR(A,B) iff A and B have no common …
RKSimon Oct 28, 2022
63e3fe1
Revert "[clang][Interp] Implement String- and CharacterLiterals"
tbaederr Oct 28, 2022
3ac1744
[mlir][nvvm] Introduce performance tuning directives
grypp Oct 28, 2022
56f967d
[Object] Prevent null pointer dereference in BigArchiveMemberHeader
vhscampos Oct 7, 2022
e027afd
[InstCombine] Convert test to opaque pointers (NFC)
nikic Oct 28, 2022
76cf890
Add some more C11 DR tests and update the status page
AaronBallman Oct 28, 2022
835b99e
Disambiguate type names when printing NTTP types
DoDoENT Oct 28, 2022
f4a338e
Online sync-ups: remove Windows/COFF entry.
kbeyls Oct 27, 2022
4e830bb
[mlir] Fix the bazel build for 3ac17449cf988bfcde804a4cc532420ed1657595
hokein Oct 28, 2022
52ba50c
[clang][Interp] Implement String- and CharacterLiterals
tbaederr Oct 28, 2022
fe5b7d9
[mlir] One more the bazel build for 3ac17449cf988bfcde804a4cc532420ed…
hokein Oct 28, 2022
83b97b3
[clang] Fix a -Wcast-qual GCC warning. NFC.
mstorsjo Oct 28, 2022
b999ac1
[llvm] Fix minimum Apple Clang requirement
kadircet Oct 24, 2022
fd448bb
[clang][LTO] Passing vec-extabi to the Backend on AIX
qiongsiwu Oct 28, 2022
1e7c1dd
[SDAG] avoid crash from mismatched types in scalar-to-vector fold
rotateright Oct 28, 2022
7a7b36e
Revert "[MachineCSE] Allow PRE of instructions that read physical reg…
john-brawn-arm Oct 28, 2022
b4db15a
[mlir] Rename getInputs->getDpsInputs and getOutputs->getDpsInits in …
pifon2a Oct 28, 2022
dce7864
clang-tblgen build: avoid duplicate inclusion of libLLVMSupport
nhaehnle Sep 22, 2022
8b87cb4
[clang][Interp] Remove unused getGlobalIdx()
tbaederr Oct 28, 2022
0ccff03
[clang][Interp] Fix record members of reference type
tbaederr Oct 15, 2022
38ffc89
[clang][Interp] Fix ignoring expression return values
tbaederr Oct 15, 2022
ee9bbfa
[clang][Interp] Make sure we free() allocated InitMaps
tbaederr Oct 27, 2022
524c640
[clang][DebugInfo] Emit DISubprogram for extern functions with reserv…
eddyz87 Oct 28, 2022
c9b4dc3
[FuncSpec][NFC] Avoid redundant computations of DominatorTree/LoopInfo
momchil-velikov Oct 28, 2022
4b0c285
[NFC][OpenMP] Fix compile warnings introduced by D134396
shiltian Oct 28, 2022
974e2e6
[RISCV] Adjust RV64I data layout by using n32:64 in layout string
topperc Oct 28, 2022
b246ca7
[GVN] Regenerate test checks (NFC)
nikic Oct 28, 2022
5eb1fbd
[clang][Docs] Correct typo: "may_trap" is rejected, the value is "may…
kpneal Oct 28, 2022
55b4344
[HIP] add --offload-add-rpath
yxsamliu Oct 27, 2022
ddec896
[clang][Interp][NFC] Use right visit() function
tbaederr Oct 21, 2022
f79f64b
[clang][Interp] Implement inc and dec operators
tbaederr Oct 21, 2022
c1b4d7f
[InstCombine] Add shuffle-binop tests
MDevereau Oct 28, 2022
5a72df2
[clang][Interp] Add missing expected test output
tbaederr Oct 28, 2022
7c44b48
[X86] Add basic test coverage for Issue #58630
RKSimon Oct 28, 2022
69d117e
[DAG] ExpandIntRes_MINMAX - simplify cases with sufficient number of …
RKSimon Oct 28, 2022
340cf21
[AArch64]SME2 Multi-vector - Index/Single/Multi Array Vectors LONG IN…
CarolineConcatto Oct 25, 2022
f1c9ef3
Add test coverage for WG14 N2322
AaronBallman Oct 28, 2022
4df36f1
[AArch64]SME2 Outer Product and Accumulate instructions
CarolineConcatto Oct 27, 2022
f7985dd
[polly] Remove legacy pass manager hooks
aeubanks Oct 24, 2022
4ea6ffb
[LegacyPM] Remove pipeline extension mechanism
aeubanks Oct 24, 2022
6a79441
[RISCV] Optimize i64 insertelt on RV32.
topperc Oct 28, 2022
69b2b72
[clang] Remove no-op -fexperimental-new-pass-manager/-fno-legacy-pass…
aeubanks Oct 26, 2022
b9a77b5
[Concepts] Fix an assert when trying to form a recovery expr on a
Oct 28, 2022
c7ca01b
[polly] Format RegisterPasses.cpp
aeubanks Oct 28, 2022
5404fe3
Revert "[LegacyPM] Remove pipeline extension mechanism"
aeubanks Oct 28, 2022
319444f
[HIP] add fmax/fmin for fp16
yxsamliu Oct 27, 2022
f3210d4
[polly][test] Remove -polly-target from tests
aeubanks Oct 28, 2022
374cebe
[libc] add features to bitset
michaelrj-google Oct 27, 2022
7a129f0
[libc] add scanf parser and core utilities
michaelrj-google Oct 19, 2022
1f54641
[libc][obvious] fix scanf parser test
michaelrj-google Oct 28, 2022
f418f88
[libc] add locale free strcoll
michaelrj-google Oct 26, 2022
a75879d
Update the status of some C2x features
AaronBallman Oct 28, 2022
1d4a57b
[RISCV] Merge WriteLDW and WriteLDWU schedule classes.
topperc Oct 28, 2022
2a37ec9
[mlir][linalg] Add missing region when building TransposeOp
d0k Oct 28, 2022
71cf48a
[mlir][scf] Enhance sizes computation in tileUsingSCFForOp.
hanhanW Oct 28, 2022
174502f
[OpenMP][libomp] Parameterize affinity functions
jpeyton52 Aug 1, 2022
b03d67f
[OpenMP][libomp] Make affinity warnings parameterized
jpeyton52 Oct 3, 2022
7a9643f
[OpenMP][libomp] Add hidden helper affinity
jpeyton52 Oct 3, 2022
a1e325c
[scudo] Lazy initialize the PageMap while page releasing
ChiaHungDuan Oct 27, 2022
6130d67
[scudo] Fix the calculating of memory group usage
ChiaHungDuan Oct 27, 2022
dd109f6
[mlir][sve] Canonicalise MLIR_RUN_ARM_SVE_TESTS
banach-space Oct 28, 2022
b3b517d
[lldb] Explicitly open file to write with utf-8 encoding in crashlog.py
augusto2112 Oct 26, 2022
69fe7ab
Revert "[scudo] Fix the calculating of memory group usage"
ChiaHungDuan Oct 28, 2022
36a0253
[HIP] add float to fp16 convert functions
yxsamliu Oct 28, 2022
97c1b00
Follow-up to Itanium ABI POD patchnotes
dwblaikie Oct 28, 2022
23c5043
Revert "[AArch64]SME2 Outer Product and Accumulate instructions"
nathanchance Oct 28, 2022
eb53661
[Driver] Fix -fdebug-default-version= -Wunused-command-line-argument …
MaskRay Oct 28, 2022
5661647
[mlir][sparse] build proper insertion chain
aartbik Oct 28, 2022
e1f9983
Move getenv for AS_SECURE_LOG_FILE to clang
benlangmuir Oct 27, 2022
c853d69
[mlir][arm][sve] fix broken integration tests
aartbik Oct 28, 2022
d3e99d6
[Driver] Use addOptInFlag/addOptOutFlag. NFC
MaskRay Oct 28, 2022
a842f74
[lldb] Support simplified template names
aeubanks Aug 4, 2022
1c06817
Revert "[AArch64] Optimize memcmp when the result is tested for [in]e…
ilovepi Oct 28, 2022
7d568cd
AMDGPU: Register a null MC streamer for -emit-codegen-only
arsenm Oct 28, 2022
f041204
llvm-reduce: Stop checking workitem is interesting before each pass
arsenm Oct 24, 2022
63baab8
[mlir][sparse] Fold invariant op only when it has only one use.
Oct 28, 2022
9a26f89
[llvm-tblgen] NFC: Simplify DecoderEmitter.
jyknight Oct 28, 2022
1ad63dc
clang: Add required target to test
arsenm Oct 28, 2022
fd35e15
[clang][test] Require x86 target in a couple new tests
benlangmuir Oct 28, 2022
bc405e3
llvm-reduce: Don't turn switches into returns
arsenm Oct 19, 2022
45a91c1
llvm-reduce: Fix block reduction with unreachable blocks
arsenm Oct 4, 2022
f02bc70
llvm-reduce: Fix producing invalid reductions with landingpads
arsenm Oct 20, 2022
b925509
Fix MLIR build after D136931
vzakhari Oct 29, 2022
e5cb0ee
[mlir][sparse] run canonicalization pass after DenseOpBufferize.
Oct 28, 2022
1c42c2a
[mlir][sparse] Cleaning up function names in test
wrengr Oct 27, 2022
ff9576f
[Frontend] Fix -MP when main file is <stdin>
MaskRay Oct 29, 2022
0cc9710
[Frontend] -MP: remove blank lines
MaskRay Oct 29, 2022
756ee72
llvm-reduce: Fix typo
arsenm Oct 29, 2022
c62745e
DiagnosticInfo: Report function location for resource limits
arsenm Oct 27, 2022
0ebd463
clang: Improve errors for DiagnosticInfoResourceLimit
arsenm Oct 27, 2022
a876219
ARM: Fix stack warning test
arsenm Oct 29, 2022
8b1865b
[mlir] Fix the bazel error after c853d69ab9778fece61b0bf63a71609f437a…
hokein Oct 29, 2022
53c251b
[libc] Fix the return value of fread and fwrite.
Oct 29, 2022
0e40a78
[clang][NFC] sync comments from declaration of InitializePreprocessor
inclyc Oct 29, 2022
9dc5b32
Revert "Revert "[scudo] Fix the calculating of memory group usage""
ChiaHungDuan Oct 28, 2022
30ea3fc
[clang-format][NFC] Move BracesRemover tests out of FormatTest.cpp
owenca Oct 27, 2022
d437f59
[gn build] Port 30ea3fcc4c69
llvmgnsyncbot Oct 29, 2022
efae1a7
[docs] clang.rst: gnu++14 => gnu++17
MaskRay Oct 29, 2022
53f9b95
[LoongArch] Improve the "out of range" error information reported by …
XiaodongLoong Oct 27, 2022
c4dd260
[JITLink][RISCV] Add names for GOT/PLT relocations
hahnjo Oct 28, 2022
0a0d2f5
[X86] Ensure 256-bit inlane shuffles are set to 2 uops + half rate
RKSimon Oct 29, 2022
eea6a27
[X86] WriteFShuffle256 shuffles aren't microcoded in the llvm sense
RKSimon Oct 29, 2022
b1a6c6c
[lit] Deduplicate README and longdescription, and update it
mgorny Oct 29, 2022
78739fd
[DAG] Enable combineShiftOfShiftedLogic folds after type legalization
RKSimon Oct 29, 2022
2c4e073
[mlir] Split parser fuzzer for bytecode & text
jpienaar Oct 29, 2022
adf3daa
[ARC] Regenerate ldst.ll
RKSimon Oct 29, 2022
0271288
[InstCombine] add tests for mul with shl operand; NFC
rotateright Oct 28, 2022
d344146
[InstCombine] reduce code duplication in visitMul(); NFC
rotateright Oct 29, 2022
17eb198
Handle errors in expansion of response files
spavloff Oct 14, 2022
691244b
[X86] Remove 256-bit scheduler classes
RKSimon Oct 29, 2022
d9fdc84
[X86] Remove the WriteDPPSZ schedule pair
RKSimon Oct 29, 2022
50000ec
[InstCombine] create helper function for mul patterns with 1<<X; NFC
rotateright Oct 29, 2022
6064e92
[InstCombine] fold mul with incremented "shl 1" factor
rotateright Oct 29, 2022
c4a8f9a
[Hexagon] Fix vector concatenation
Oct 25, 2022
63a4638
Recommit [AArch64] Optimize memcmp when the result is tested for [in]…
vfdff Oct 29, 2022
9422a8d
[Hexagon] Break up vectors into HVX-sized chunks in HvxIdioms
Oct 25, 2022
227f30a
[flang] Clarify cases where name resolution of generic shadowing can …
klausler Oct 7, 2022
323fb62
[Hexagon] Report changes in HvxIdioms pass
Oct 29, 2022
43f0f1a
[VPlan] Use onlyFirstLaneUsed in sinkScalarOperands.
fhahn Oct 29, 2022
cd9aff8
[flang] Catch and diagnose attempts to misuse NULL()
klausler Oct 7, 2022
c1728a4
Revert "Handle errors in expansion of response files"
spavloff Oct 29, 2022
ba26b5e
[ORC] Mark late-claimed weak symbols as live in ObjectLinkingLayer.
lhames Oct 29, 2022
b203511
[flang] Fix warning from clang 16 on recent patch
klausler Oct 29, 2022
619b5bf
[flang] Improve error recovery for bad/missing construct END statements
klausler Oct 10, 2022
39f6d83
[flang] Speed up folding of LEN_TRIM()
klausler Oct 10, 2022
4052c50
[flang] Enforce constraint C911
klausler Oct 11, 2022
f3d49db
[test] Remove readonly from some parameters that are written through …
pcwalton Oct 27, 2022
81767f2
[test][AliasAnalysis] Add some baseline tests in preparation for getM…
pcwalton Oct 28, 2022
75cdab6
[llvm-objdump] Add --no-print-imm-hex to tests depending on it.
mysterymath Oct 29, 2022
b0764e0
[flang] Recode a line to dodge a clang warning
klausler Oct 29, 2022
78d59a6
[flang] Warn about overflow from folding complex ABS()
klausler Oct 11, 2022
874fc53
[flang] Catch inconsistent function/subroutine usage of procedure poi…
klausler Oct 11, 2022
9b86a72
[flang] Catch C721 violations in defined interfaces
klausler Oct 12, 2022
21971af
[flang] Stricter scrutiny of deferred type parameters (C702)
klausler Oct 12, 2022
5de49af
[flang] Abstract interfaces can't be designated or referenced
klausler Oct 13, 2022
d5be155
[clang-format] Don't crash on malformed preprocessor conditions
eywdck2l Oct 30, 2022
cab3ef2
[ADT] Remove redundant typename (NFC)
kazutakahirata Oct 30, 2022
881547d
[clang][Interp] Implement add and sub compound assign operators
tbaederr Oct 22, 2022
62efe45
[mlir] Fix a warning
kazutakahirata Oct 30, 2022
6d965c9
[clang][Interp] Implement left and right shifts
tbaederr Oct 22, 2022
74fb770
[clang][Interp] Implement bitXor opcode
tbaederr Oct 22, 2022
da5dda4
Merge green commit '74fb770de9399d7258a8eda974c93610cfde698e' from Oc…
gargaroff Nov 10, 2022
a7694d2
refactor(Linalg): FXML-1067 rename getInputs -> getDpsInputs, getOutp…
gargaroff Nov 10, 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: 4 additions & 4 deletions bolt/include/bolt/Core/BinaryContext.h
Original file line number Diff line number Diff line change
Expand Up @@ -1236,10 +1236,10 @@ class BinaryContext {
return Size;
}

/// Verify that assembling instruction \p Inst results in the same sequence of
/// bytes as \p Encoding.
bool validateEncoding(const MCInst &Instruction,
ArrayRef<uint8_t> Encoding) const;
/// Validate that disassembling the \p Sequence of bytes into an instruction
/// and assembling the instruction again, results in a byte sequence identical
/// to the original one.
bool validateInstructionEncoding(ArrayRef<uint8_t> Sequence) const;

/// Return a function execution count threshold for determining whether
/// the function is 'hot'. Consider it hot if count is above the average exec
Expand Down
18 changes: 12 additions & 6 deletions bolt/lib/Core/BinaryContext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2287,19 +2287,25 @@ BinaryContext::calculateEmittedSize(BinaryFunction &BF, bool FixBranches) {
return std::make_pair(HotSize, ColdSize);
}

bool BinaryContext::validateEncoding(const MCInst &Inst,
ArrayRef<uint8_t> InputEncoding) const {
bool BinaryContext::validateInstructionEncoding(
ArrayRef<uint8_t> InputSequence) const {
MCInst Inst;
uint64_t InstSize;
DisAsm->getInstruction(Inst, InstSize, InputSequence, 0, nulls());
assert(InstSize == InputSequence.size() &&
"Disassembled instruction size does not match the sequence.");

SmallString<256> Code;
SmallVector<MCFixup, 4> Fixups;
raw_svector_ostream VecOS(Code);

MCE->encodeInstruction(Inst, VecOS, Fixups, *STI);
auto EncodedData = ArrayRef<uint8_t>((uint8_t *)Code.data(), Code.size());
if (InputEncoding != EncodedData) {
auto OutputSequence = ArrayRef<uint8_t>((uint8_t *)Code.data(), Code.size());
if (InputSequence != OutputSequence) {
if (opts::Verbosity > 1) {
errs() << "BOLT-WARNING: mismatched encoding detected\n"
<< " input: " << InputEncoding << '\n'
<< " output: " << EncodedData << '\n';
<< " input: " << InputSequence << '\n'
<< " output: " << OutputSequence << '\n';
}
return false;
}
Expand Down
11 changes: 3 additions & 8 deletions bolt/lib/Core/BinaryFunction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1217,7 +1217,7 @@ bool BinaryFunction::disassemble() {
// Check integrity of LLVM assembler/disassembler.
if (opts::CheckEncoding && !BC.MIB->isBranch(Instruction) &&
!BC.MIB->isCall(Instruction) && !BC.MIB->isNoop(Instruction)) {
if (!BC.validateEncoding(Instruction, FunctionData.slice(Offset, Size))) {
if (!BC.validateInstructionEncoding(FunctionData.slice(Offset, Size))) {
errs() << "BOLT-WARNING: mismatching LLVM encoding detected in "
<< "function " << *this << " for instruction :\n";
BC.printInstruction(errs(), Instruction, AbsoluteInstrAddr);
Expand All @@ -1233,15 +1233,10 @@ bool BinaryFunction::disassemble() {
break;
}

// Disassemble again without the symbolizer and check that the disassembly
// matches the assembler output.
MCInst TempInst;
BC.DisAsm->getInstruction(TempInst, Size, FunctionData.slice(Offset),
AbsoluteInstrAddr, nulls());
if (!BC.validateEncoding(TempInst, FunctionData.slice(Offset, Size))) {
if (!BC.validateInstructionEncoding(FunctionData.slice(Offset, Size))) {
errs() << "BOLT-WARNING: internal assembler/disassembler error "
"detected for AVX512 instruction:\n";
BC.printInstruction(errs(), TempInst, AbsoluteInstrAddr);
BC.printInstruction(errs(), Instruction, AbsoluteInstrAddr);
errs() << " in function " << *this << '\n';
setIgnored();
break;
Expand Down
24 changes: 12 additions & 12 deletions bolt/lib/Rewrite/DWARFRewriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -498,20 +498,20 @@ void DWARFRewriter::updateUnitDebugInfo(
Optional<uint64_t> Address = AttrVal.V.getAsAddress();
const BinaryFunction *Function =
BC.getBinaryFunctionContainingAddress(*Address);
uint32_t Index = 0;
// Preserving original address instead of using whatever ends up at this
// index.
if (!Function) {
Index = AddrWriter->getIndexFromAddress(*Address, Unit);
} else {
const uint64_t UpdatedAddress =
Function->translateInputToOutputAddress(*Address);
Index = AddrWriter->getIndexFromAddress(UpdatedAddress, Unit);
}
if (AttrVal.V.getForm() == dwarf::DW_FORM_addrx)
uint64_t UpdatedAddress = *Address;
if (Function)
UpdatedAddress =
Function->translateInputToOutputAddress(UpdatedAddress);

if (AttrVal.V.getForm() == dwarf::DW_FORM_addrx) {
const uint32_t Index =
AddrWriter->getIndexFromAddress(UpdatedAddress, Unit);
DebugInfoPatcher.addUDataPatch(AttrVal.Offset, Index, AttrVal.Size);
else
} else if (AttrVal.V.getForm() == dwarf::DW_FORM_addr) {
DebugInfoPatcher.addLE32Patch(AttrVal.Offset, UpdatedAddress);
} else {
errs() << "BOLT-ERROR: unsupported form for " << Entry << "\n";
}
};

if (Optional<AttrInfo> AttrVal =
Expand Down
82 changes: 60 additions & 22 deletions bolt/lib/Rewrite/RewriteInstance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -407,14 +407,6 @@ Error RewriteInstance::discoverStorage() {
NamedRegionTimer T("discoverStorage", "discover storage", TimerGroupName,
TimerGroupDesc, opts::TimeRewrite);

// Stubs are harmful because RuntimeDyld may try to increase the size of
// sections accounting for stubs when we need those sections to match the
// same size seen in the input binary, in case this section is a copy
// of the original one seen in the binary.
BC->EFMM.reset(new ExecutableFileMemoryManager(*BC, /*AllowStubs*/ false));
BC->EFMM->setNewSecPrefix(getNewSecPrefix());
BC->EFMM->setOrgSecPrefix(getOrgSecPrefix());

auto ELF64LEFile = dyn_cast<ELF64LEObjectFile>(InputFile);
const ELFFile<ELF64LE> &Obj = ELF64LEFile->getELFFile();

Expand Down Expand Up @@ -607,10 +599,19 @@ void RewriteInstance::parsePseudoProbe() {
errs() << "BOLT-WARNING: fail in building GUID2FuncDescMap\n";
return;
}

MCPseudoProbeDecoder::Uint64Set GuidFilter;
MCPseudoProbeDecoder::Uint64Map FuncStartAddrs;
for (const BinaryFunction *F : BC->getAllBinaryFunctions()) {
for (const MCSymbol *Sym : F->getSymbols()) {
FuncStartAddrs[Function::getGUID(NameResolver::restore(Sym->getName()))] =
F->getAddress();
}
}
Contents = PseudoProbeSection->getContents();
if (!BC->ProbeDecoder.buildAddress2ProbeMap(
reinterpret_cast<const uint8_t *>(Contents.data()),
Contents.size())) {
reinterpret_cast<const uint8_t *>(Contents.data()), Contents.size(),
GuidFilter, FuncStartAddrs)) {
BC->ProbeDecoder.getAddress2ProbesMap().clear();
errs() << "BOLT-WARNING: fail in building Address2ProbeMap\n";
return;
Expand Down Expand Up @@ -974,7 +975,19 @@ void RewriteInstance::discoverFileObjects() {
if (Name.empty()) {
UniqueName = "ANONYMOUS." + std::to_string(AnonymousId++);
} else if (cantFail(Symbol.getFlags()) & SymbolRef::SF_Global) {
assert(!BC->getBinaryDataByName(Name) && "global name not unique");
if (const BinaryData *BD = BC->getBinaryDataByName(Name)) {
if (BD->getSize() == ELFSymbolRef(Symbol).getSize() &&
BD->getAddress() == Address) {
if (opts::Verbosity > 1)
errs() << "BOLT-WARNING: ignoring duplicate global symbol " << Name
<< "\n";
// Ignore duplicate entry - possibly a bug in the linker
continue;
}
errs() << "BOLT-ERROR: bad input binary, global symbol \"" << Name
<< "\" is not unique\n";
exit(1);
}
UniqueName = Name;
} else {
// If we have a local file name, we should create 2 variants for the
Expand Down Expand Up @@ -1068,6 +1081,7 @@ void RewriteInstance::discoverFileObjects() {
if (opts::Verbosity >= 1)
outs() << "BOLT-INFO: skipping possibly another entry for function "
<< *PreviousFunction << " : " << UniqueName << '\n';
registerName(SymbolSize);
} else {
outs() << "BOLT-INFO: using " << UniqueName << " as another entry to "
<< "function " << *PreviousFunction << '\n';
Expand All @@ -1084,7 +1098,6 @@ void RewriteInstance::discoverFileObjects() {
assert(SI->second == Symbol && "wrong symbol found");
FileSymRefs.erase(SI);
}
registerName(SymbolSize);
continue;
}

Expand Down Expand Up @@ -1273,9 +1286,12 @@ void RewriteInstance::createPLTBinaryFunction(uint64_t TargetAddress,

ErrorOr<BinarySection &> Section = BC->getSectionForAddress(EntryAddress);
assert(Section && "cannot get section for address");
BF = BC->createBinaryFunction(Rel->Symbol->getName().str() + "@PLT", *Section,
EntryAddress, 0, EntrySize,
Section->getAlignment());
if (!BF)
BF = BC->createBinaryFunction(Rel->Symbol->getName().str() + "@PLT",
*Section, EntryAddress, 0, EntrySize,
Section->getAlignment());
else
BF->addAlternativeName(Rel->Symbol->getName().str() + "@PLT");
setPLTSymbol(BF, Rel->Symbol->getName());
}

Expand Down Expand Up @@ -1407,15 +1423,19 @@ void RewriteInstance::disassemblePLT() {
continue;

analyzeOnePLTSection(Section, PLTSI->EntrySize);
// If we did not register any function at the start of the section,
// then it must be a general PLT entry. Add a function at the location.
if (BC->getBinaryFunctions().find(Section.getAddress()) ==
BC->getBinaryFunctions().end()) {
BinaryFunction *BF = BC->createBinaryFunction(

BinaryFunction *PltBF;
auto BFIter = BC->getBinaryFunctions().find(Section.getAddress());
if (BFIter != BC->getBinaryFunctions().end()) {
PltBF = &BFIter->second;
} else {
// If we did not register any function at the start of the section,
// then it must be a general PLT entry. Add a function at the location.
PltBF = BC->createBinaryFunction(
"__BOLT_PSEUDO_" + Section.getName().str(), Section,
Section.getAddress(), 0, PLTSI->EntrySize, Section.getAlignment());
BF->setPseudo(true);
}
PltBF->setPseudo(true);
}
}

Expand Down Expand Up @@ -3180,6 +3200,14 @@ void RewriteInstance::emitAndLink() {
MCAsmLayout FinalLayout(
static_cast<MCObjectStreamer *>(Streamer.get())->getAssembler());

// Disable stubs because RuntimeDyld may try to increase the size of
// sections accounting for stubs. We need those sections to match the
// same size seen in the input binary, in case this section is a copy
// of the original one seen in the binary.
BC->EFMM.reset(new ExecutableFileMemoryManager(*BC, /*AllowStubs=*/false));
BC->EFMM->setNewSecPrefix(getNewSecPrefix());
BC->EFMM->setOrgSecPrefix(getOrgSecPrefix());

RTDyld.reset(new decltype(RTDyld)::element_type(*BC->EFMM, Resolver));
RTDyld->setProcessAllSections(false);
RTDyld->loadObject(*Obj);
Expand Down Expand Up @@ -3407,6 +3435,8 @@ void RewriteInstance::encodePseudoProbes() {
// Address of the first probe is absolute.
// Other probes' address are represented by delta
auto EmitDecodedPseudoProbe = [&](MCDecodedPseudoProbe *&CurProbe) {
assert(!isSentinelProbe(CurProbe->getAttributes()) &&
"Sentinel probes should not be emitted");
EmitULEB128IntValue(CurProbe->getIndex());
uint8_t PackedType = CurProbe->getType() | (CurProbe->getAttributes() << 4);
uint8_t Flag =
Expand Down Expand Up @@ -3511,9 +3541,17 @@ void RewriteInstance::encodePseudoProbes() {
reinterpret_cast<const uint8_t *>(DescContents.data()),
DescContents.size());
StringRef ProbeContents = PseudoProbeSection->getOutputContents();
MCPseudoProbeDecoder::Uint64Set GuidFilter;
MCPseudoProbeDecoder::Uint64Map FuncStartAddrs;
for (const BinaryFunction *F : BC->getAllBinaryFunctions()) {
const uint64_t Addr =
F->isEmitted() ? F->getOutputAddress() : F->getAddress();
FuncStartAddrs[Function::getGUID(
NameResolver::restore(F->getOneName()))] = Addr;
}
DummyDecoder.buildAddress2ProbeMap(
reinterpret_cast<const uint8_t *>(ProbeContents.data()),
ProbeContents.size());
ProbeContents.size(), GuidFilter, FuncStartAddrs);
DummyDecoder.printProbesForAllAddresses(outs());
}
}
Expand Down
2 changes: 1 addition & 1 deletion bolt/test/AArch64/double_jump.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// RUN: %clang %cflags -O0 %s -o %t.exe
// RUN: llvm-bolt %t.exe -o %t.bolt --peepholes=double-jumps | \
// RUN: FileCheck %s -check-prefix=CHECKBOLT
// RUN: llvm-objdump -d %t.bolt | FileCheck %s
// RUN: llvm-objdump --no-print-imm-hex -d %t.bolt | FileCheck %s

// CHECKBOLT: BOLT-INFO: Peephole: 1 double jumps patched.

Expand Down
Loading