History log of /llvm-project/llvm/unittests/SandboxIR/PassTest.cpp (Results 1 – 16 of 16)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init
# 4b209c5d 24-Jan-2025 vporpo <vporpodas@google.com>

[SandboxIR][Region] Add cost modeling to the region (#124354)

This patch implements cost modeling for Region. All instructions that
are added or removed get their cost counted in the Scoreboard. Th

[SandboxIR][Region] Add cost modeling to the region (#124354)

This patch implements cost modeling for Region. All instructions that
are added or removed get their cost counted in the Scoreboard. This is
used for checking if the region before or after a transformation is more
profitable.

show more ...


Revision tags: llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3
# a461869d 29-Oct-2024 vporpo <vporpodas@google.com>

[SandboxIR][Pass] Implement Analyses class (#113962)

The Analyses class provides a way to pass around commonly used Analyses
to SandboxIR passes throught `runOnFunction()` and `runOnRegion()`
func

[SandboxIR][Pass] Implement Analyses class (#113962)

The Analyses class provides a way to pass around commonly used Analyses
to SandboxIR passes throught `runOnFunction()` and `runOnRegion()`
functions.

show more ...


# 2e8ad49e 15-Oct-2024 Jorge Gorbe Moya <jgorbe@google.com>

[SandboxVec] Add pass to create Regions from metadata. Generalize SandboxVec pass pipelines. (#112288)

My previous attempt (#111904) hacked creation of Regions from metadata
into the bottom-up vect

[SandboxVec] Add pass to create Regions from metadata. Generalize SandboxVec pass pipelines. (#112288)

My previous attempt (#111904) hacked creation of Regions from metadata
into the bottom-up vectorizer. I got some feedback that it should be its
own pass. So now we have two SandboxIR function passes (`BottomUpVec`
and `RegionsFromMetadata`) that are interchangeable, and we could have
other SandboxIR function passes doing other kinds of transforms, so this
commit revamps pipeline creation and parsing.

First, `sandboxir::PassManager::setPassPipeline` now accepts pass
arguments in angle brackets. Pass arguments are arbitrary strings that
must be parsed by each pass, the only requirement is that nested angle
bracket pairs must be balanced, to allow for nested pipelines with more
arguments. For example:
```
bottom-up-vec<region-pass-1,region-pass-2<arg>,region-pass-3>
```
This has complicated the parser a little bit (the loop over pipeline
characters now contains a small state machine), and we now have some new
test cases to exercise the new features.

The main SandboxVectorizerPass now contains a customizable pipeline of
SandboxIR function passes, defined by the `sbvec-passes` flag. Region
passes for the bottom-up vectorizer pass are now in pass arguments (like
in the example above).

Because we have now several classes that can build sub-pass pipelines,
I've moved the logic that interacts with PassRegistry.def into its own
files (PassBuilder.{h,cpp} so it can be easily reused.

Finally, I've added a `RegionsFromMetadata` function pass, which will
allow us to run region passes in isolation from lit tests without
relying on the bottom-up vectorizer, and a new lit test that does
exactly this.

Note that the new pipeline parser now allows empty pipelines. This is
useful for testing. For example, if we use
```
-sbvec-passes="bottom-up-vec<>"
```
SandboxVectorizer converts LLVM IR to SandboxIR and runs the bottom-up
vectorizer, but no region passes afterwards.
```
-sbvec-passes=""
```
SandboxVectorizer converts LLVM IR to SandboxIR and runs no passes on
it. This is useful to exercise SandboxIR conversion on its own.

show more ...


Revision tags: llvmorg-19.1.2
# 756ec99c 10-Oct-2024 Jorge Gorbe Moya <jgorbe@google.com>

[SandboxVec] Re-land "Use sbvec-passes flag to create a pipeline of Region passes after BottomUpVec. (#111223)" (#111772)

https://github.com/llvm/llvm-project/pull/111223 was reverted because of
a

[SandboxVec] Re-land "Use sbvec-passes flag to create a pipeline of Region passes after BottomUpVec. (#111223)" (#111772)

https://github.com/llvm/llvm-project/pull/111223 was reverted because of
a build failure with `-DBUILD_SHARED_LIBS=on`.

The Passes component depends on Vectorizer (because PassBuilder needs to
be able to instantiate SandboxVectorizerPass). This resulted in CMake
doing this

1. when it builds lib/libLLVMVectorize.so.20.0git it adds
lib/libLLVMSandboxIR.so.20.0git to the command line, because it's listed
as a dependency (as expected)
2. when it's trying to build lib/libLLVMPasses.so.20.0git it adds
lib/libLLVMVectorize.so.20.0git to the command line, because it's listed
as a dependency (also as expected). But not libLLVMSandboxIR.so.

When SandboxVectorizerPass has its ctors/dtors defined inline, this
caused "undefined reference to vtable" linker errors. This change works
around that by moving ctors/dtors out of line.

Also fix a bazel build problem by adding the new
`llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/PassRegistry.def`
as a textual header in the Vectorizer target.

show more ...


# 102c384b 09-Oct-2024 Jorge Gorbe Moya <jgorbe@google.com>

Revert "[SandboxVectorizer] Use sbvec-passes flag to create a pipeline of Region passes after BottomUpVec." (#111727)

Reverts llvm/llvm-project#111223

It broke one of the build bots:

LLVM Buil

Revert "[SandboxVectorizer] Use sbvec-passes flag to create a pipeline of Region passes after BottomUpVec." (#111727)

Reverts llvm/llvm-project#111223

It broke one of the build bots:

LLVM Buildbot has detected a new failure on builder flang-aarch64-libcxx
running on linaro-flang-aarch64-libcxx while building llvm at step 5
"build-unified-tree".

Full details are available at:
https://lab.llvm.org/buildbot/#/builders/89/builds/8127

show more ...


# 10ada4ae 09-Oct-2024 Jorge Gorbe Moya <jgorbe@google.com>

[SandboxVectorizer] Use sbvec-passes flag to create a pipeline of Region passes after BottomUpVec. (#111223)

The main change is that the main SandboxVectorizer pass no longer has a
pipeline of func

[SandboxVectorizer] Use sbvec-passes flag to create a pipeline of Region passes after BottomUpVec. (#111223)

The main change is that the main SandboxVectorizer pass no longer has a
pipeline of function passes. Now it is a wrapper that creates sandbox IR
from functions before calling BottomUpVec.

BottomUpVec now builds its own RegionPassManager from the `sbvec-passes`
flag, using a PassRegistry.def file. For now, these region passes are
not run (BottomUpVec doesn't create Regions yet), and only a null pass
for testing exists.

This commit also changes the ownership model for sandboxir::PassManager:
instead of having a PassRegistry that owns passes, and PassManagers that
contain non-owning pointers to the passes, now PassManager owns (via
unique pointers) the passes it contains.

PassRegistry is now deleted, and the logic to parse and create a pass
pipeline is now in PassManager::setPassPipeline.

show more ...


# f35c213c 02-Oct-2024 Jorge Gorbe Moya <jgorbe@google.com>

[SandboxIR] Add RegionPass/RegionPassManager (#110933)

These classes mirror the existing FunctionPass/FunctionPassManager, and
will be used by the sandbox vectorizer to run a pipeline of region
pa

[SandboxIR] Add RegionPass/RegionPassManager (#110933)

These classes mirror the existing FunctionPass/FunctionPassManager, and
will be used by the sandbox vectorizer to run a pipeline of region
passes.

show more ...


Revision tags: llvmorg-19.1.1
# e22b07e7 30-Sep-2024 vporpo <vporpodas@google.com>

[SandboxIR][NFC] Move Function class to a separate file (#110526)


# 2018f4cc 27-Sep-2024 Vasileios Porpodas <vporpodas@google.com>

Reapply "[SandboxIR][NFC] Delete SandboxIR.h (#110309)"

This reverts commit 8dfeb4ef5d60a5c764f0ce249cc4ec69e012ff93.


# 8dfeb4ef 27-Sep-2024 Vasileios Porpodas <vporpodas@google.com>

Revert "[SandboxIR][NFC] Delete SandboxIR.h (#110309)"

This reverts commit ca47f48a5c9e81ef8b5c4a5b1fbc473ea5d5497c.


# ca47f48a 27-Sep-2024 vporpo <vporpodas@google.com>

[SandboxIR][NFC] Delete SandboxIR.h (#110309)


# c8fcfe19 17-Sep-2024 Vasileios Porpodas <vporpodas@google.com>

[SandboxIR][NFC] Fix unittest build warning in release


Revision tags: llvmorg-19.1.0
# f0f1b706 13-Sep-2024 vporpo <vporpodas@google.com>

[SandboxIR][PassRegistry] Parse pipeline string (#108103)

This patch implements a simple version of the pipeline parsing function.
It currently only handles a single FPM and adds function passes to

[SandboxIR][PassRegistry] Parse pipeline string (#108103)

This patch implements a simple version of the pipeline parsing function.
It currently only handles a single FPM and adds function passes to it.

show more ...


# 2ddf21bc 10-Sep-2024 vporpo <vporpodas@google.com>

[SandboxIR] Pass registry (#108084)

This patch implements a simple Pass Registry class, which takes
ownership of the passes registered with it and provides an interface to
get the pass pointer by

[SandboxIR] Pass registry (#108084)

This patch implements a simple Pass Registry class, which takes
ownership of the passes registered with it and provides an interface to
get the pass pointer by its name.

show more ...


# 3363760f 10-Sep-2024 vporpo <vporpodas@google.com>

[SandboxIR] PassManager (#107932)

This patch implements a simple pass manager for Sandbox IR.


# f12e10b5 09-Sep-2024 vporpo <vporpodas@google.com>

[SandboxVec] Implement Pass class (#107617)

This patch implements the Pass base class and the FunctionPass sub-class
that operate on Sandbox IR.