Skip to content
Merged

x #13

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
666 commits
Select commit Hold shift + click to select a range
4c82f56
[llvm][SVE] Remove redundant and when comparing against extending load
DavidTruby Jul 19, 2022
7f76471
[mlir][tblgen] Add support for extraClassDefinition in AttrDef
Jul 19, 2022
e45ef5e
[mlir][ods] (NFC) Remove warning in `AttrOrTypeDef`
Jul 19, 2022
a62868a
[libclang][ObjC] Inherit availability attribute from containing decls or
ahatanaka Jul 11, 2022
2224bbc
[nfc][amdgpu] LDS. Move selection logic up the stack.
JonChesterfield Jul 19, 2022
3d6c10d
[SimplifyLibCalls] avoid converting pow() to powi() with no FMF
rotateright Jul 19, 2022
13aa2c1
[DSE] Revisit pointers that may no longer escape after removing anoth…
aeubanks Apr 12, 2022
70039be
[Libomptarget] Make libomptarget an LLVM library
jhuber6 Jul 15, 2022
7709f12
Bitwise comparison intrinsics
tarunprabhu Jul 19, 2022
3a20597
[amdgpu] Implement lds kernel id intrinsic
JonChesterfield Jul 19, 2022
e46f727
Revert "[Libomptarget] Make libomptarget an LLVM library"
JonChesterfield Jul 19, 2022
2d05418
Revert "[mlir][ods] (NFC) Remove warning in `AttrOrTypeDef`"
Jul 19, 2022
f6017ab
[lld-macho] Support folding of functions with identical LSDAs
int3 Jul 19, 2022
e939bf6
[llvm] add zstd to `llvm::compression` namespace
ckissane Jul 19, 2022
6fb27bc
[SystemZ][z/OS] Introduce CCAssignToRegAndStack to calling convention
Jul 19, 2022
a01d274
[OpenMP][libomp] Fix /dev/shm pollution after forked child process te…
AndreyChurbanov May 19, 2022
b7d3ba4
[LV] Add test coverage for scalable div/rem patterns
preames Jul 19, 2022
28c8da2
[OpenMP][libomp] Fix fallthrough attribute detection for Intel compilers
May 19, 2022
17dcde5
[OpenMP][libomp] Allow reset affinity mask after parallel
AndreyChurbanov May 18, 2022
40ce65b
[OpenMP][libomp] Fix affinity warnings and unify under one macro
May 18, 2022
6bf817c
[gn build] (manually) port e939bf67e340
nico Jul 19, 2022
6d7455b
[gn build] fix typo
nico Jul 19, 2022
2a408f2
[TSAN] Disable clone_setns test case on PPC64 RHEL 7.9 Targets
kamaub Jul 18, 2022
2247fe8
[LV] Add test coverage for a bug in srem handling
preames Jul 19, 2022
e225764
[ARM] Update atomic tests for D129695. NFC
davemgreen Jul 19, 2022
ca495e3
[clang] Add a new flag -fexperimental-library to enable experimental …
ldionne Jul 6, 2022
8353403
[LV] Add test for generic predicated sdiv
preames Jul 19, 2022
9451440
[mlir][docs] Fix pass manager document
vmrajas Jul 19, 2022
f0c3fd1
Don't combine if there would remain no true reduction dim.
bjacob Jul 19, 2022
a364987
[analyzer][NFC] Use `SValVisitor` instead of explicit helper functions
Jul 16, 2022
5bce73b
[test] Convert some tests to use opaque pointers
aeubanks Jul 19, 2022
c91ce94
[pseudo] Add `clang-pseudo -html-forest=<output.html>`, an HTML fores…
sam-mccall Jul 18, 2022
f36f0f2
[x86] add tests for fixup-bw with size optimization attrs; NFC
rotateright Jul 19, 2022
9d1ea17
[x86] use zero-extending load of a byte outside of loops too
rotateright Jul 19, 2022
374db8f
[gn build] (manually) port c91ce941448 (HTMLForestResources.inc)
nico Jul 19, 2022
0bc1009
[lld-macho] Add support for -alias
keith Jul 16, 2022
fd4afa7
[flang] Support late math lowering for intrinsics from the llvm table.
vzakhari Jul 18, 2022
f1c3013
[libc++] Drop the legacy debug mode symbols by default
ldionne Jul 19, 2022
91941f0
[libc++][NFC] Add commit SHA for ABI change
ldionne Jul 19, 2022
f1243fa
[LV] Autogen a partially autogened test for ease of update
preames Jul 19, 2022
bf789b1
[Attributor] Replace AAValueSimplify with AAPotentialValues
jdoerfert Jun 21, 2022
95401b0
Revert "[x86] use zero-extending load of a byte outside of loops too"
rotateright Jul 19, 2022
d2c0572
[mlir] Flip LinAlg dialect to _Both
jpienaar Jul 19, 2022
dd56355
[lld-macho] Fix loading same libraries from both LC_LINKER_OPTION and…
kainzhong Jul 19, 2022
6d84383
[JITLink] Hook up prebuilt cache in DWARFRecordSectionSplitter::proce…
lhames Jul 19, 2022
1cf6b93
Revert "[Local] Allow creating callbr with duplicate successors"
nickdesaulniers Jul 19, 2022
1b1f1c7
Re-re-apply 5acd47169884, Add a shared-memory based orc::MemoryMapper...
argentite Jul 19, 2022
b8cf916
[LLDB][NativePDB] Add MSInheritanceAttr when creating pointer type th…
ZequanWu Jul 19, 2022
f8322d1
[libc] Add a method `find_last_of` to StringView.
Jul 19, 2022
41f6a21
[gn build] Port 1b1f1c778695
llvmgnsyncbot Jul 19, 2022
04644a9
[mlir] Fixed ordering of pass statistics.
vzakhari Jul 19, 2022
16cccc6
Bazel BUILD file for BOLT.
tmsri Jul 15, 2022
116ee23
[bolt] std::atomic_uint64_t to std::atomic<uint64_t>
tmsri Jul 19, 2022
4f2ccdd
[Attributor][NFC] Improve debug messages
jdoerfert Jul 9, 2022
f84712f
[Attributor] Teach checkForAllUses to follow returns into callers
jdoerfert Jul 9, 2022
f693874
[ODRHash diagnostics] Preparation to minimize subsequent diffs. NFC.
vsapsai Jun 27, 2022
7d815ab
[mlir][NFC] Split out various tests from IR/invalid.mlir
River707 Jul 19, 2022
3f73c57
Argument name support for function pointer signature hints
Qwinci Jul 20, 2022
50cfb76
[libc++] Define ostream nullptr inserter for >= C++17 only
JoeLoser Jun 3, 2022
b8d54d1
[libc++][ranges][NFC] Test that range algorithms support iterators re…
var-const Jul 20, 2022
94e6d26
[ORC] Fix serialization / deserialization of default-constructed Stri…
lhames Jul 20, 2022
9c0564a
[libc++][ranges] fix `std::search_n` incorrect `static_assert`
huixie90 Jul 20, 2022
18f46f3
[libc++][ranges] Fix broken CI.
var-const Jul 20, 2022
2e2737c
[MC][MachO] Change addrsig format + ensure its size is properly set
int3 Jul 20, 2022
2d889a8
[lld-macho] Read in new addrsig format
int3 Jul 20, 2022
f0dd12e
[x86] use zero-extending load of a byte outside of loops too (2nd try)
rotateright Jul 20, 2022
09d4dbc
[llvm-driver] Generate symlinks instead of executables for tools
abrachet Jul 20, 2022
87ce7b4
[lld-macho] Simplify archive loading logic
int3 Jul 20, 2022
57224ff
Don't treat readnone call in presplit coroutine as not access memory
ChuanqiXu9 Jul 20, 2022
bbbb439
[CodeGen] Use value_or instead of getValueOr (NFC)
kazutakahirata Jul 20, 2022
c35807f
[mlir] Address compiler warning
jpienaar Jul 20, 2022
5dd19ad
[libc++][ranges] Implement `ranges::partial_sort`.
var-const Jul 20, 2022
41ae78e
Use has_value instead of hasValue (NFC)
kazutakahirata Jul 20, 2022
5b0e96a
[gn build] Port 5dd19ada571b
llvmgnsyncbot Jul 20, 2022
d337c1f
[AArch64] Use SUBXrx64 for dynamic stack to refer to sp
bcl5980 Jul 20, 2022
25aa29f
[libc++][ranges][NFC] Consolidate range algorithm checks for returnin…
var-const Jul 20, 2022
d946fb8
[X86] Make sure load size is not larger than stack slot
HaohaiWen Jul 20, 2022
0387da6
Use value instead of getValue (NFC)
kazutakahirata Jul 20, 2022
e882ac5
Mark test experimental-library-flag.cpp as XFAIL on PS4 and PS5 to ge…
dyung Jul 20, 2022
23ba688
[X86] Use Min behavior for cf-protection-{return,branch}/ibt-seal mod…
MaskRay Jul 20, 2022
ad94b5c
[X86][test] Use Min behavior for "cf-protection-{branch,return}" tests
MaskRay Jul 20, 2022
868e1ee
Revert "[libasan] Remove 4Mb stack limit for swapcontext unpoisoning"
vitalybuka Jul 20, 2022
afb9d89
[flang] Use value instead of getValue (NFC)
kazutakahirata Jul 20, 2022
b8a1f00
[mlir][TilingInterface] Add support for interchange to tiling pattern…
Jul 17, 2022
c96ddd7
Update the Windows packaging script.
CarlosAlbertoEnciso Jul 20, 2022
e931c2e
[LegacyPM] Remove InstrOrderFileLegacyPass
MaskRay Jul 20, 2022
c3d856b
[mlir][Math] Add constant folder for Log1pOp.
Jul 18, 2022
76e18cc
[llvm] Use llvm::any_of and llvm::none_of (NFC)
kazutakahirata Jul 20, 2022
f72e0a8
[X86] Add test case for shuffle.
LuoYuanke Jul 20, 2022
dbec35c
[sanitizer] Port sanitizer_common to LoongArch
xry111 Jul 20, 2022
07c90d9
[InstCombine] add tests for icmp-shr. nfc
ZCBing Jul 20, 2022
08b30cf
Merge from 'sycl' to 'sycl-web'
Jul 20, 2022
f9676d2
[mlir] Fix macOS tests
powderluv Jul 20, 2022
07d69d9
[VP] Legalize the stride operand for EXPERIMENTAL_VP_STRIDED SDNodes
Jul 20, 2022
79660d3
[LoopVectorize][AArch64] Add TTI hook preferPredicatedReductionSelect
david-arm Jul 14, 2022
ee7ccbe
[mlir:LSP][NFC] Make the LSPServer class private
River707 Jul 20, 2022
051738b
Reland "[AArch64] Add a tablegen pattern for UZP2."
labrinea Jul 18, 2022
645d2dd
Revert "Don't treat readnone call in presplit coroutine as not access…
ChuanqiXu9 Jul 20, 2022
85a03d6
Merge from 'main' to 'sycl-web' (170 commits)
zhaomaosu Jul 20, 2022
8ba794b
[InstCombine] add more tests for xor_of_icmps. nfc
ZCBing Jul 20, 2022
5a4033c
update-test-checks: safely handle tests with #if's
nhaehnle Jul 19, 2022
24c88c9
[bazel] Add -lrt on non-darwin/non-windows for 1b1f1c778695442c268381…
d0k Jul 20, 2022
20d30f7
[libc++] Add clang-tidy for the tests
philnik777 Jul 18, 2022
309aed3
[libc++] Implement P1423R3 (char8_t backward compatibility remediation)
philnik777 Jul 19, 2022
4396688
[bazel] Also add -lrt to OrcTargetProcess for 1b1f1c778695442c2683813…
d0k Jul 20, 2022
9fc347a
[DAG] PromoteIntRes_BUILD_VECTOR - extend constant boolean vectors ac…
RKSimon Jul 20, 2022
5124b21
[VPlan] Initial def-use verification.
fhahn Jul 20, 2022
bb4ff39
[X86] shuffle-blend.ll - add 32-bit test coverage
RKSimon Jul 20, 2022
766cd95
[DAG] getNode - assert that ADDO/SUBO nodes have the correct ops + types
RKSimon Jul 20, 2022
2b6edc9
[X86] shuffle-blend.ll - add avx512f-only test coverage
RKSimon Jul 20, 2022
4704da1
[ARM] Fix Thumb2 compare being emitted ExpandCMP_SWAP
davemgreen Jul 20, 2022
029e83b
[DAG] getNode - don't bother creating ADDO(X,0) or SUBO(X,0) nodes.
RKSimon Jul 20, 2022
b1847ff
[XCOFF] write the aux header when the visibility is specified in XCOF…
Jul 20, 2022
bbdf5c3
[flang][driver] Fix opt-level option parsing
banach-space Jul 19, 2022
7af2818
Update some more tests with update_cc_test_checks.py
nhaehnle Jul 19, 2022
e0ccd19
[SCEV][NFC][CT] Do not waste time proving contextual facts for unreac…
Jul 20, 2022
1ddc51d
Inliner: don't mark call sites as 'nounwind' if that would be redundant
nhaehnle Jul 15, 2022
f8c1375
Update the Windows packaging script.
CarlosAlbertoEnciso Jul 20, 2022
523a526
[LV] Fix miscompile due to srem/sdiv speculation safety condition
preames Jul 19, 2022
db0a658
[AMDGPU] Change RUN lines to not depend on code sinking. NFC.
jayfoad Jul 20, 2022
7169659
[clang] Small adjustments for -fexperimental-library
ldionne Jul 20, 2022
000e426
[mlir][bufferize][doc] Fix documentation of return type of `to_memref`.
ingomueller-net Jul 20, 2022
643dfd9
[Libomptarget] Make libomptarget an LLVM library
jhuber6 Jul 15, 2022
394a388
[TableGen] Add a location for a class definition that was forward-dec…
rusyaev-roman Jul 20, 2022
801971e
[LLD] [COFF] Improve the error message for too many exported symbols
mstorsjo Jul 18, 2022
7373497
UNSUPPORT test on 64-bit AIX too
jakeegan Jul 20, 2022
be25f52
[LV] Autogen several tests for ease of update in upcoming change
preames Jul 20, 2022
bd519b9
redo UNSUPPORT test on 64-bit AIX too
jakeegan Jul 20, 2022
6b0db92
[Libomptarget] Fix LTO command line in test
jhuber6 Jul 20, 2022
b5b2016
Revert "[Libomptarget] Make libomptarget an LLVM library"
jhuber6 Jul 20, 2022
1a73ef7
[LV] Autogen a test for ease of update
preames Jul 20, 2022
993625b
[flang] Use value instead of getValue (NFC)
kazutakahirata Jul 20, 2022
360c111
Use llvm::is_contained (NFC)
kazutakahirata Jul 20, 2022
b1578bf
[RISCV][test] Add tests showing signext behaviour of cmpxchg
asb Jul 20, 2022
29a66ab
[libc++][doc] Updates the release notes.
mordante Jul 18, 2022
2b98b8e
fix bug for useless malloc elimination in CodeGenPrepare
drcut Jul 19, 2022
8e48783
[flang][nfc] Test folding of bit-population count intrinsics
Jul 20, 2022
857a78c
[libc++] Implements Unicode grapheme clustering
mordante May 28, 2022
94e03ab
[IPO] Restore a call to has_value (NFC)
kazutakahirata Jul 20, 2022
7a2a640
[gn build] Port 857a78c04dee
llvmgnsyncbot Jul 20, 2022
c30c461
[RISCV][test] Add tests for atomic compare exchange + branch on result
asb Jul 20, 2022
b32e600
[libc++][format] Updates the status page.
mordante Jul 20, 2022
dc850fb
[AMDGPU] NFC. Assert that mask is full with VOPC DPP
Sisyph Jul 19, 2022
7e77d31
[test] Remove unnecessary -verify-machineinstrs=0
aeubanks Jul 20, 2022
adc1c34
[NFC][tests] Remove XFAIL for AIX for passing tests
hubert-reinterpretcast Jul 20, 2022
19d4f5e
[test] Add missing REQUIRES: arm-registered-target
aeubanks Jul 20, 2022
3aff787
[InstCombine] Pre-commit test for D130103.
topperc Jul 19, 2022
d76c8f5
[InstCombine] Add mul with negated power of 2 constant to canEvaluate…
topperc Jul 19, 2022
a73a84c
[HLSL] add -I option for dxc mode.
python3kgae Jun 23, 2022
15f685e
[lld-macho] Fold cfstrings with --deduplicate-literals
keith Jul 20, 2022
065202f
[libc++][ranges] Implement `std::ranges::partition_{point,copy}`.
var-const Jul 20, 2022
f494f89
[LAA] Fix latent missing check bug when mixing scalable and non-scala…
preames Jul 20, 2022
362c4e6
[mlir:LSP] Remove several more annoying completion commit characters
River707 Jul 20, 2022
b64a286
[mlir:LSP] Add a doc blurb for code completion
River707 Jul 20, 2022
bc9b964
[NFC] Suppress unused variable warning in non-assert builds
aeubanks Jul 20, 2022
dc52712
[Libomptarget] Make libomptarget an LLVM library
jhuber6 Jul 20, 2022
23cf42e
[libc++] Use uninitialized algorithms for vector
philnik777 Jul 20, 2022
761e2a3
[gn build] Port 23cf42e706fb
llvmgnsyncbot Jul 20, 2022
b7131ce
Merge from 'sycl' to 'sycl-web'
Jul 20, 2022
1b246fb
Merge from 'main' to 'sycl-web' (56 commits)
dwoodwor-intel Jul 20, 2022
2ac7b14
[llvm] [cmake] Skip driver-related code unless LLVM_TOOL_LLVM_DRIVER_…
mgorny Jul 20, 2022
bc4d2e7
[libc++] Fix `_IterOps::__iter_move` to support proxy iterators.
var-const Jul 20, 2022
0c1b327
[HIP] Allow the new driver to compile HIP in non-RDC mode
jhuber6 Jul 14, 2022
7c5d8fd
Merge from 'main' to 'sycl-web' (5 commits)
dwoodwor-intel Jul 20, 2022
3930cc6
[mlir][spirv] Rename spv.ocl to spv.cl. NFC.
kuhar Jul 20, 2022
f934b9b
[LV] Refresh a couple of autogen tests for naming change
preames Jul 20, 2022
459cfa5
[LLDB][NFC][Reliability] Fix uninitialized variables from Coverity scan
noclowns Jul 20, 2022
5b0d6bf
[MLIR] Add function to create Float16 array attribute
Jul 20, 2022
6746b23
[RISCV] Add test cases for failure to use bexti for (setne (and X, 1<…
topperc Jul 20, 2022
31b8939
[RISCV] Recognize bexti from (srl (and X, 1<<C), C).
topperc Jul 20, 2022
fe1678d
llvm-reduce: Fix register mask test
arsenm Jul 20, 2022
3040272
[ThinLTO] Support aliased GlobalIFunc
SchrodingerZhu Jul 20, 2022
0174f55
[MemProf] Basic metadata support and verification
teresajohnson Jun 6, 2022
67f1fe8
[GlobalOpt] Enable evaluation of atomic stores
alexander-shaposhnikov Jul 20, 2022
142897d
[Attributor] Only non-exact accesses require a uniform bit-pattern (=0)
jdoerfert Jul 10, 2022
ad98ef8
[Attributor] Deal with complex PHI nodes better during AAPointerInfo
jdoerfert Jul 10, 2022
ed344c8
[mlir:LSP] Add a quickfix code action for inserting expected-* diagno…
River707 Jul 20, 2022
4fbd1d6
[flang] Run algebraic simplification optimization pass.
vzakhari Jul 14, 2022
d072826
[Darwin toolchain] Tune the logic for finding arclite.
cachemeifyoucan Jul 20, 2022
aabc4b1
[ORC] Don't try to copy from an empty segment in SimpleExecutorMemory…
lhames Jul 20, 2022
7434375
Revert "[flang] Run algebraic simplification optimization pass."
vzakhari Jul 20, 2022
4fcf843
[ORC] Add a new MemoryMapper-based JITLinkMemoryManager implementation.
argentite Jul 21, 2022
f6b5f24
[gn build] Port 4fcf8434dd77
llvmgnsyncbot Jul 21, 2022
7abbd62
[libc++] Fix proxy iterator issues that trigger an assertion in Chrom…
huixie90 Jul 21, 2022
8983db1
[RISCV] Optimize (brcond (seteq (and X, 1 << C), 0))
topperc Jul 21, 2022
26a7ee3
[NFC][asan] Use RoundDownTo
vitalybuka Jul 20, 2022
e855440
[NFC][memprof] Remove unused code
vitalybuka Jul 21, 2022
82995e0
[NFC][asan] Clang-format a code
vitalybuka Jul 21, 2022
8075f68
[InstCombine] add fold (X > C - 1) ^ (X < C + 1) --> X != C
ZCBing Jul 21, 2022
8c124c9
[InstCombine] (ShiftValC >> Y) >s -1/<s 0 --> Y != 0/==0
ZCBing Jul 21, 2022
9c22853
[mlir][Math] Add constant folder for LogOp.
Jul 20, 2022
bba1f26
Port address sanitizer to LoongArch
xry111 Jul 21, 2022
7dda6c7
[RISCV] Refactor the common combines for SELECT_CC and BR_CC into a h…
topperc Jul 21, 2022
892a996
[clang-format] Indent tokens after hash only if it starts a line
owenca Jul 20, 2022
a4c62f6
[clang-format][NFC] Refactor RequiresDoesNotChangeParsingOfTheRest
owenca Jul 19, 2022
485190d
[mlir][Linalg] Deprecate `tileAndFuseLinalgOps` method and associated…
Jul 15, 2022
339392e
[AIX] follow-up of D124654.
Jul 21, 2022
28800c2
[sanitizer] Use consistent checks for XDR
ian-twilightcoder Jul 19, 2022
add17fc
[RISCV] Combine (select_cc (srl (and X, 1<<C), C), 0, eq/ne, true, fale)
topperc Jul 21, 2022
61fa7a8
[clang][OpenMP] Add IRBuilder support for taskgroup
shraiysh Jul 21, 2022
05ccde8
[LoopCacheAnalysis] Fix a type mismatch problem in cost calculation
CongzheUalberta Jul 21, 2022
cc72af4
[X86] Add test case for shuffle
LuoYuanke Jul 21, 2022
9e65850
[RFC][MLIR][SCF] Enable better bufferization for `TileConsumerAndFuse…
chelini Jul 19, 2022
23d6186
[SelectionDAG] Fix fptoi.sat scalable vector lowering
davemgreen Jul 21, 2022
3776db9
[sanitizer_common] Support Solaris < 11.4 in GetStaticTlsBoundary
rorth Jul 21, 2022
f45ab43
[MemoryBuiltins] Avoid isAllocationFn() call before checking removabl…
nikic Jul 21, 2022
7f1c031
Revert "[RFC][MLIR][SCF] Enable better bufferization for `TileConsume…
chelini Jul 21, 2022
ecdeabe
enable P10 vector builtins test on AIX 64 bit; NFC
Jul 21, 2022
08db089
[CSKY] Fix the testcase error due to the verifyInstructionPredicates
zixuan-wu Jul 21, 2022
54e18b2
[lld-macho] Optimize rebase opcode generation
BertalanD Jul 20, 2022
2955192
[pseudo] Make sure we rebuild pseudo_gen tool.
hokein Jul 21, 2022
2ed7c3f
[MLIR][SCF] Enable better bufferization for `TileConsumerAndFuseProdu…
chelini Jul 21, 2022
97af17c
re-land [C++20][Modules] Update handling of implicit inlines [P1779R3]
iains Jul 3, 2022
bc5c637
enable P10 vector builtins test on AIX 64 bit; NFC
Jul 21, 2022
708084e
[PowerPC] Support x86 compatible intrinsics on AIX
ecnelises Jul 21, 2022
c72c22c
[InstCombine] Don't check for alloc fn before fetching object size
nikic Jul 21, 2022
70056d0
Revert "[InstCombine] Don't check for alloc fn before fetching object…
nikic Jul 21, 2022
d4217e6
[mlir][memref] Missing type conversion in memref.reshape llvm lowering
Hardcode84 Jul 17, 2022
7c49f56
[flang][nfc] Add missing `REQUIRES: asserts` in tests
banach-space Jul 20, 2022
ea623af
[C++20] [Modules] Avoid inifinite loop when iterating default args
ChuanqiXu9 Jul 21, 2022
235fb60
[MemoryBuiltins] Don't query TLI for non-pointer functions (NFC)
nikic Jul 21, 2022
e60eb70
recommit "[DAGCombiner] Teach scalarizeBinOpOfSplats handle scalable …
Jul 7, 2022
d144ae6
[MemoryBuiltins] Default to trivial mapper in getAllocSize() (NFC)
nikic Jul 21, 2022
8d58c8e
Reapply [InstCombine] Don't check for alloc fn before fetching alloc …
nikic Jul 21, 2022
b988d8d
tsan: remove unnecessary brackets
dvyukov Jul 21, 2022
d2a4d6b
[DebugInfo][llvm-dwarfutil] Combine overlapped address ranges.
avl-llvm Jul 19, 2022
c81dff3
[MemoryBuiltins] Add getFreedOperand() function (NFCI)
nikic Jul 21, 2022
3aad490
Revert "[DebugInfo][llvm-dwarfutil] Combine overlapped address ranges."
avl-llvm Jul 21, 2022
9383b09
[AMDGPU][GlobalISel] Fix subtarget checks for combining to v_med3_i16
jayfoad Jul 21, 2022
2feb99b
[AArch64] Add i128 parity test
RKSimon Jul 21, 2022
e0fbd99
[AArch64][SVE] Add ISel pattern to lower DUPLANE128 to LD1RQD
MDevereau Jul 12, 2022
cd3d7bf
[AArch64][SVE] Add DAG-Combine to push bitcasts from floating point l…
MDevereau Jul 18, 2022
8bb4451
[Reland][DebugInfo][llvm-dwarfutil] Combine overlapped address ranges.
avl-llvm Jul 19, 2022
396e944
[Flang] Generate documentation for compiler flags
DylanFleming-arm Jul 21, 2022
ce82407
Revert "[Flang] Generate documentation for compiler flags"
banach-space Jul 21, 2022
65c8e24
[pseudo] Fix an invalid assertion on recoveryBrackets.
hokein Jul 21, 2022
fd64a85
[AMDGPU] Combine s_or_saveexec, s_xor instructions.
tsymalla-AMD Jun 29, 2022
3ac8587
[Attributor] Use getFreedOperand() (NFC)
nikic Jul 21, 2022
5e856a8
[InstCombine] Use getFreedOperand() (NFC)
nikic Jul 21, 2022
46e6dd8
[MemoryBuiltins] Remove isFreeCall() function (NFC)
nikic Jul 21, 2022
4e0c951
Merge branch 'sycl-web' into pulldown-ww31
dwoodwor-intel Jul 22, 2022
de56b85
Merge commit '46e6dd84b778dd2e30368183fec265beceecdd0f' into pulldown…
dwoodwor-intel Jul 22, 2022
75b547f
Mark test for downstream opaque pointer default
dwoodwor-intel Jul 22, 2022
e440fbd
Pass pointer type information into mangleBuiltin. (#1549)
jcranmer-intel Jul 21, 2022
27a0ae9
Fix integer dot product translation (#1174)
Quetzonarch Jul 22, 2022
5c7cc9a
Fix sphinx build
dwoodwor-intel Jul 22, 2022
146a439
Update tests
dwoodwor-intel Jul 25, 2022
6c66f28
[SYCL] Implement device_global headers (#5959)
steffenlarsen Jul 26, 2022
7ef4b0a
[Driver][SYCL] Properly tag temporary list file for archive unbundlin…
mdtoguchi Jul 26, 2022
dd17a33
LLVM and SPIRV-LLVM-Translator pulldown (WW31)
bb-sycl Jul 26, 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
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions bolt/include/bolt/Core/BinaryBasicBlock.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#ifndef BOLT_CORE_BINARY_BASIC_BLOCK_H
#define BOLT_CORE_BINARY_BASIC_BLOCK_H

#include "bolt/Core/FunctionLayout.h"
#include "bolt/Core/MCPlus.h"
#include "llvm/ADT/GraphTraits.h"
#include "llvm/ADT/StringRef.h"
Expand Down Expand Up @@ -671,6 +672,10 @@ class BinaryBasicBlock {

void markValid(const bool Valid) { IsValid = Valid; }

FragmentNum getFragmentNum() const {
return IsCold ? FragmentNum::cold() : FragmentNum::hot();
}

bool isCold() const { return IsCold; }

void setIsCold(const bool Flag) { IsCold = Flag; }
Expand Down
124 changes: 12 additions & 112 deletions bolt/include/bolt/Core/BinaryFunction.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
#include "bolt/Core/BinaryLoop.h"
#include "bolt/Core/BinarySection.h"
#include "bolt/Core/DebugData.h"
#include "bolt/Core/FunctionLayout.h"
#include "bolt/Core/JumpTable.h"
#include "bolt/Core/MCPlus.h"
#include "bolt/Utils/NameResolver.h"
Expand Down Expand Up @@ -552,10 +553,8 @@ class BinaryFunction {
using BasicBlockListType = SmallVector<BinaryBasicBlock *, 0>;
BasicBlockListType BasicBlocks;
BasicBlockListType DeletedBasicBlocks;
BasicBlockOrderType BasicBlocksLayout;
/// Previous layout replaced by modifyLayout
BasicBlockOrderType BasicBlocksPreviousLayout;
bool ModifiedLayout{false};

FunctionLayout Layout;

/// BasicBlockOffsets are used during CFG construction to map from code
/// offsets to BinaryBasicBlocks. Any modifications made to the CFG
Expand Down Expand Up @@ -754,12 +753,6 @@ class BinaryFunction {
using const_reverse_iterator =
pointee_iterator<BasicBlockListType::const_reverse_iterator>;

typedef BasicBlockOrderType::iterator order_iterator;
typedef BasicBlockOrderType::const_iterator const_order_iterator;
typedef BasicBlockOrderType::reverse_iterator reverse_order_iterator;
typedef BasicBlockOrderType::const_reverse_iterator
const_reverse_order_iterator;

// CFG iterators.
iterator begin() { return BasicBlocks.begin(); }
const_iterator begin() const { return BasicBlocks.begin(); }
Expand Down Expand Up @@ -788,49 +781,6 @@ class BinaryFunction {
BasicBlockListType::iterator pbegin() { return BasicBlocks.begin(); }
BasicBlockListType::iterator pend() { return BasicBlocks.end(); }

order_iterator layout_begin() { return BasicBlocksLayout.begin(); }
const_order_iterator layout_begin() const
{ return BasicBlocksLayout.begin(); }
order_iterator layout_end() { return BasicBlocksLayout.end(); }
const_order_iterator layout_end() const
{ return BasicBlocksLayout.end(); }
reverse_order_iterator layout_rbegin()
{ return BasicBlocksLayout.rbegin(); }
const_reverse_order_iterator layout_rbegin() const
{ return BasicBlocksLayout.rbegin(); }
reverse_order_iterator layout_rend()
{ return BasicBlocksLayout.rend(); }
const_reverse_order_iterator layout_rend() const
{ return BasicBlocksLayout.rend(); }
size_t layout_size() const { return BasicBlocksLayout.size(); }
bool layout_empty() const { return BasicBlocksLayout.empty(); }
const BinaryBasicBlock *layout_front() const
{ return BasicBlocksLayout.front(); }
BinaryBasicBlock *layout_front() { return BasicBlocksLayout.front(); }
const BinaryBasicBlock *layout_back() const
{ return BasicBlocksLayout.back(); }
BinaryBasicBlock *layout_back() { return BasicBlocksLayout.back(); }

inline iterator_range<order_iterator> layout() {
return iterator_range<order_iterator>(BasicBlocksLayout.begin(),
BasicBlocksLayout.end());
}

inline iterator_range<const_order_iterator> layout() const {
return iterator_range<const_order_iterator>(BasicBlocksLayout.begin(),
BasicBlocksLayout.end());
}

inline iterator_range<reverse_order_iterator> rlayout() {
return iterator_range<reverse_order_iterator>(BasicBlocksLayout.rbegin(),
BasicBlocksLayout.rend());
}

inline iterator_range<const_reverse_order_iterator> rlayout() const {
return iterator_range<const_reverse_order_iterator>(
BasicBlocksLayout.rbegin(), BasicBlocksLayout.rend());
}

cfi_iterator cie_begin() { return CIEFrameInstructions.begin(); }
const_cfi_iterator cie_begin() const { return CIEFrameInstructions.begin(); }
cfi_iterator cie_end() { return CIEFrameInstructions.end(); }
Expand Down Expand Up @@ -881,27 +831,16 @@ class BinaryFunction {
return *this;
}

/// Update layout of basic blocks used for output.
void updateBasicBlockLayout(BasicBlockOrderType &NewLayout) {
assert(NewLayout.size() == BasicBlocks.size() && "Layout size mismatch.");
FunctionLayout &getLayout() { return Layout; }

BasicBlocksPreviousLayout = BasicBlocksLayout;
if (NewLayout != BasicBlocksLayout) {
ModifiedLayout = true;
BasicBlocksLayout.clear();
BasicBlocksLayout.swap(NewLayout);
}
}
const FunctionLayout &getLayout() const { return Layout; }

/// Recompute landing pad information for the function and all its blocks.
void recomputeLandingPads();

/// Return current basic block layout.
const BasicBlockOrderType &getLayout() const { return BasicBlocksLayout; }

/// Return a list of basic blocks sorted using DFS and update layout indices
/// using the same order. Does not modify the current layout.
BasicBlockOrderType dfs() const;
BasicBlockListType dfs() const;

/// Find the loops in the CFG of the function and store information about
/// them.
Expand Down Expand Up @@ -958,26 +897,6 @@ class BinaryFunction {
return I == LabelToBB.end() ? nullptr : I->second;
}

/// Returns the basic block after the given basic block in the layout or
/// nullptr the last basic block is given.
const BinaryBasicBlock *getBasicBlockAfter(const BinaryBasicBlock *BB,
bool IgnoreSplits = true) const {
return const_cast<BinaryFunction *>(this)->getBasicBlockAfter(BB,
IgnoreSplits);
}

BinaryBasicBlock *getBasicBlockAfter(const BinaryBasicBlock *BB,
bool IgnoreSplits = true) {
for (auto I = layout_begin(), E = layout_end(); I != E; ++I) {
auto Next = std::next(I);
if (*I == BB && Next != E) {
return (IgnoreSplits || (*I)->isCold() == (*Next)->isCold()) ? *Next
: nullptr;
}
}
return nullptr;
}

/// Retrieve the landing pad BB associated with invoke instruction \p Invoke
/// that is in \p BB. Return nullptr if none exists
BinaryBasicBlock *getLandingPadBBFor(const BinaryBasicBlock &BB,
Expand Down Expand Up @@ -1455,10 +1374,7 @@ class BinaryFunction {
bool hasUnknownControlFlow() const { return HasUnknownControlFlow; }

/// Return true if the function body is non-contiguous.
bool isSplit() const {
return isSimple() && layout_size() &&
layout_front()->isCold() != layout_back()->isCold();
}
bool isSplit() const { return isSimple() && getLayout().isSplit(); }

bool shouldPreserveNops() const { return PreserveNops; }

Expand Down Expand Up @@ -1578,8 +1494,7 @@ class BinaryFunction {
BinaryBasicBlock *BB = BasicBlocks.back();

BB->setIndex(BasicBlocks.size() - 1);
BB->setLayoutIndex(layout_size());
BasicBlocksLayout.emplace_back(BB);
Layout.addBasicBlock(BB);

return BB;
}
Expand Down Expand Up @@ -1626,13 +1541,6 @@ class BinaryFunction {
/// layout after the BB indicated by Start.
void updateLayout(BinaryBasicBlock *Start, const unsigned NumNewBlocks);

/// Make sure basic blocks' indices match the current layout.
void updateLayoutIndices() const {
unsigned Index = 0;
for (BinaryBasicBlock *BB : layout())
BB->setLayoutIndex(Index++);
}

/// Recompute the CFI state for NumNewBlocks following Start after inserting
/// new blocks into the CFG. This must be called after updateLayout.
void updateCFIState(BinaryBasicBlock *Start, const unsigned NumNewBlocks);
Expand Down Expand Up @@ -2213,14 +2121,6 @@ class BinaryFunction {
/// and size.
uint64_t getFunctionScore() const;

/// Return true if the layout has been changed by basic block reordering,
/// false otherwise.
bool hasLayoutChanged() const;

/// Get the edit distance of the new layout with respect to the previous
/// layout after basic block reordering.
uint64_t getEditDistance() const;

/// Get the number of instructions within this function.
uint64_t getInstructionCount() const;

Expand Down Expand Up @@ -2429,7 +2329,7 @@ template <>
struct GraphTraits<bolt::BinaryFunction *>
: public GraphTraits<bolt::BinaryBasicBlock *> {
static NodeRef getEntryNode(bolt::BinaryFunction *F) {
return *F->layout_begin();
return F->getLayout().block_front();
}

using nodes_iterator = pointer_iterator<bolt::BinaryFunction::iterator>;
Expand All @@ -2449,7 +2349,7 @@ template <>
struct GraphTraits<const bolt::BinaryFunction *>
: public GraphTraits<const bolt::BinaryBasicBlock *> {
static NodeRef getEntryNode(const bolt::BinaryFunction *F) {
return *F->layout_begin();
return F->getLayout().block_front();
}

using nodes_iterator = pointer_iterator<bolt::BinaryFunction::const_iterator>;
Expand All @@ -2469,15 +2369,15 @@ template <>
struct GraphTraits<Inverse<bolt::BinaryFunction *>>
: public GraphTraits<Inverse<bolt::BinaryBasicBlock *>> {
static NodeRef getEntryNode(Inverse<bolt::BinaryFunction *> G) {
return *G.Graph->layout_begin();
return G.Graph->getLayout().block_front();
}
};

template <>
struct GraphTraits<Inverse<const bolt::BinaryFunction *>>
: public GraphTraits<Inverse<const bolt::BinaryBasicBlock *>> {
static NodeRef getEntryNode(Inverse<const bolt::BinaryFunction *> G) {
return *G.Graph->layout_begin();
return G.Graph->getLayout().block_front();
}
};

Expand Down
Loading