vporpo
31b85c6ead
[SandboxVec][Interval] Implement Interval::comesBefore() ( #112026 )
...
This patch implements `Interval::comesBefore(const Interval &Other)`
which returns true if this interval is strictly before Other in program
order. The function asserts that the intervals are disjoint.
2024-10-11 11:51:38 -07:00
vporpo
e8dd95e97b
[SandboxVec][DAG] Extend DAG ( #111908 )
...
This patch implements growing the DAG towards the top or bottom. This
does the necessary dependency checks and adds new mem dependencies.
2024-10-11 08:12:29 -07:00
vporpo
69c0067927
[SandboxVec][DAG] Refactoring: Outline code that looks for mem nodes ( #111750 )
2024-10-10 13:25:03 -07:00
vporpo
a4916d2005
[SandboxVec][DAG] Refactoring: Move MemPreds from DGNode to MemDGNode ( #111897 )
2024-10-10 12:42:28 -07:00
vporpo
747d8f3fc9
[SandboxVec][DAG] Implement PredIterator ( #111604 )
...
This patch implements an iterator for iterating over both use-def and
mem dependencies of MemDGNodes.
2024-10-10 12:01:56 -07:00
vporpo
ee0e17a4d8
[SandboxVec][DAG] Drop RAR and fix dependency scanning loop ( #111715 )
2024-10-09 10:29:48 -07:00
Simon Pilgrim
00c1c589e0
DependencyGraph.cpp - mix MSVC "not all control paths return a value" warning. NFC.
2024-10-09 11:47:43 +01:00
Vasileios Porpodas
267e852109
[SandboxVec][DAG][NFC] Rename enumerators
2024-10-08 20:01:43 -07:00
vporpo
04a8bffdf7
[SandboxVec][DAG] Build actual dependencies ( #111094 )
...
This patch implements actual dependencies checking using BatchAA. This
adds memory dep edges between MemDGNodes.
2024-10-08 16:18:57 -07:00
Vasileios Porpodas
45582ed240
[SandboxVec][DAG][NFC] Rename isMemDepCandidate() to isMemDepNodeCandidate()
2024-10-03 10:39:10 -07:00
vporpo
fd5e220fa6
[SandboxVec][DAG] MemDGNode for memory-dependency candidate nodes ( #109684 )
...
This patch implements the MemDGNode class for DAG nodes that are
candidates
for memory dependencies. These nodes form a chain that is accessible by
`getPrevNode()` and `getNextNode()`.
It also implements a builder class that creates MemDGNode intervals from
Instructions.
2024-10-01 15:40:54 -07:00
vporpo
3c66a51054
[SandboxVec][Interval] Convert InstrInterval class to a class template ( #110021 )
...
This patch converts InstrInterval class to a class template and renames
InstrInterval to Itnerval.
This change will allow us to reuse the Interval for dependency graph
nodes.
2024-09-26 17:47:25 -07:00
vporpo
0c9f7ef527
[SandboxVec][DAG] Implement extend(ArrayRef) ( #109493 )
...
This builds the DAG from an ArrayRef of Instructions.
2024-09-20 19:09:00 -07:00
vporpo
318d2f5e5d
[SandboxVec][DAG] Boilerplate ( #108862 )
...
This patch adds a very basic implementation of the Dependency Graph to
be used by the vectorizer.
2024-09-17 12:03:52 -07:00