-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[HandshakeReshapeChannels] Simplify channels before emission
Introduces a new pass meant to be a last Handshake-level pre-processing step before lowering to HW and eventually to RTL. The pass simplifies the form of channel-typed values around operations that do not read the content of extra signals (and potentially the data signal). This relies on - eligible operations implementing the `ReshapableChannelsInterface` interface to signify to the pass which of their operand channels may be reshaped and how, and - the insertion of `handshake::ReshapeOp` in the IR to go back-and-forth between complex and simple channel forms. New unit tests are added for the pass.
- Loading branch information
1 parent
041480e
commit 2082b20
Showing
14 changed files
with
477 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
//===- HandshakeReshapeChannels.h - Reshape channels' signals ---*- C++ -*-===// | ||
// | ||
// Dynamatic is 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 declares the --handshake-reshape-channels pass. | ||
// | ||
//===----------------------------------------------------------------------===// | ||
|
||
#ifndef DYNAMATIC_TRANSFORMS_HANDSHAKERESHAPE_CHANNELS_H | ||
#define DYNAMATIC_TRANSFORMS_HANDSHAKERESHAPE_CHANNELS_H | ||
|
||
#include "dynamatic/Support/DynamaticPass.h" | ||
|
||
namespace dynamatic { | ||
|
||
#define GEN_PASS_DECL_HANDSHAKERESHAPECHANNELS | ||
#define GEN_PASS_DEF_HANDSHAKERESHAPECHANNELS | ||
#include "dynamatic/Transforms/Passes.h.inc" | ||
|
||
std::unique_ptr<dynamatic::DynamaticPass> createHandshakeReshapeChannels(); | ||
|
||
} // namespace dynamatic | ||
|
||
#endif // DYNAMATIC_TRANSFORMS_HANDSHAKERESHAPE_CHANNELS_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.