profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/cgyurgyik/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Chris Gyurgyik cgyurgyik Google Mountain View, CA https://www.chrispg.dev

cucapra/calyx 94

Intermediate Language (IL) for Hardware Accelerator Generators

cgyurgyik/fast-voxel-traversal-algorithm 17

A C++ implementation of the fast voxel traversal algorithm.

cgyurgyik/riscv-assembly 6

Implementation of common functions using RISC-V assembly.

cgyurgyik/eigenvectors-from-eigenvalues 1

Function to compute the normed eigenvectors from the eigenvalues of a Hermitian matrix.

cgyurgyik/STL-algorithm-examples 1

Simple examples of each STL algorithm.

cgyurgyik/ARC-computer-vision 0

A few demonstrations using OpenCV.

cgyurgyik/bril 0

an educational compiler intermediate representation

cgyurgyik/caml-pox 0

Epidemic simulation game.

cgyurgyik/cgyurgyik.github.io 0

Github Pages template for academic personal websites, forked from mmistakes/minimal-mistakes

cgyurgyik/circt 0

Circuit IR Compilers and Tools

delete branch llvm/circt

delete branch : prints

delete time in 8 hours

push eventllvm/circt

Chris Gyurgyik

commit sha d0ecfbc4c5b223ad55955237a3d1afe1b07744e8

Use print$cppClass. (#1503) Use print$cppClass instead of print to avoid long error messages. This is more intricately detailed in CIRCT #1412.

view details

push time in 8 hours

PR merged llvm/circt

Reviewers
Replace `print` with `print$cppClass`.

Closes #1412, if I didn't miss any :)

+45 -43

0 comment

14 changed files

cgyurgyik

pr closed time in 8 hours

issue closedllvm/circt

Move all operation printers to `print$cppClass`

In ODS we currently use the following all over the place: let printer = "return ::print(p, *this);"; Since this relies on C++'s function overloading, when it can't find a print for a particular operation, all of the visible print methods get dumped into the error message.

We should switch over to let printer = "return ::print$cppClass(p, *this);"; to disambiguate by name and avoid the long error messages.

closed time in 8 hours

teqdruid

PR opened llvm/circt

Replace `print` with `print$cppClass`.

Closes #1412, if I didn't miss any :)

+45 -43

0 comment

14 changed files

pr created time in 8 hours

create barnchllvm/circt

branch : prints

created branch time in 8 hours

PR opened llvm/circt

Reviewers
[Calyx] Add CalyxToSV scaffolding. Calyx
+112 -0

0 comment

8 changed files

pr created time in 9 hours

push eventllvm/circt

cgyurgyik

commit sha eb5301db3b002132cef097e99d4bb33e78bec293

Dialect updates.

view details

push time in 9 hours

push eventllvm/circt

cgyurgyik

commit sha 07f43d591df0271a006e0bf49b1a80c3d052a151

Cleanup.

view details

push time in 9 hours

create barnchllvm/circt

branch : calyx-lower

created branch time in 9 hours

push eventllvm/circt

cgyurgyik

commit sha 80e132ee190cd8697f693b4239b119e5845403c3

cleanup.

view details

push time in 13 hours

push eventllvm/circt

cgyurgyik

commit sha 7e3a8cf435300780bbfced3891763c035ac9b91a

ws

view details

push time in 13 hours

push eventllvm/circt

cgyurgyik

commit sha 3f64cca5b9e416d674900fb994f1dd0b2f1c11c2

ws

view details

push time in 13 hours

push eventllvm/circt

cgyurgyik

commit sha 8d34c55fea1be66a1ba1612908d97e19510f4040

Keep going

view details

push time in 14 hours

push eventllvm/circt

cgyurgyik

commit sha d0c86c9f6169dfbd2c03c6c300b0d750bc216758

clang-format

view details

push time in 18 hours

push eventllvm/circt

cgyurgyik

commit sha e7b2cac2091880c365f2a0dd6cbb73e3d08adc8e

Add ws

view details

push time in 18 hours

push eventllvm/circt

cgyurgyik

commit sha 7cf5233ff8705e8273a521ab009a6ea73cb040e6

Simpler checks.

view details

push time in 19 hours

PR opened llvm/circt

Calyx emitter.

The beginning of a Calyx emitter to the native IR, which uses .futil as an alias. Thank you to @fabianschuiki for providing the emitter interface in #1492.

+315 -0

0 comment

6 changed files

pr created time in 19 hours

push eventllvm/circt

cgyurgyik

commit sha cb9f78e52b20bd68f1496226260a685f8baee269

Add todos.

view details

push time in 19 hours

create barnchllvm/circt

branch : emit-calyx

created branch time in 19 hours

Pull request review commentllvm/circt

Add a FIR emitter

+//===- FIREmitter.cpp - FIRRTL dialect to .fir emitter --------------------===//+//+// Part of the LLVM Project, 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 implements a .fir file emitter.+//+//===----------------------------------------------------------------------===//++#include "circt/Dialect/FIRRTL/FIREmitter.h"+#include "circt/Dialect/FIRRTL/FIRRTLOps.h"+#include "circt/Support/LLVM.h"+#include "mlir/IR/BuiltinOps.h"+#include "mlir/IR/BuiltinTypes.h"+#include "mlir/IR/Diagnostics.h"+#include "mlir/Translation.h"+#include "llvm/ADT/APSInt.h"+#include "llvm/ADT/TypeSwitch.h"+#include "llvm/Support/Debug.h"++#define DEBUG_TYPE "export-firrtl"++using namespace circt;+using namespace firrtl;++//===----------------------------------------------------------------------===//+// Emitter+//===----------------------------------------------------------------------===//++namespace {+/// An emitter for FIRRTL dialect operations to .fir output.+struct Emitter {+  Emitter(llvm::raw_ostream &os, const FIREmitterOptions &options)+      : os(os), options(options) {}+  LogicalResult finalize();++  // Indentation+  raw_ostream &indent() { return os.indent(currentIndent); }+  void addIndent() { currentIndent += 2; }+  void reduceIndent() { currentIndent -= 2; }

Since currentIndent is unsigned, perhaps an assertion to avoid unintended modulo?

fabianschuiki

comment created time in 19 hours

PullRequestReviewEvent

push eventllvm/circt

Julian Oppermann

commit sha 26d63480338507957ae4889d8fb3a97cb2366ab2

[Scheduling] Cosmetic changes, NFC.

view details

Fabian Schuiki

commit sha db3a585e9b1c12338b227f79a15656df5d0c35a3

[LowerToHW] Add whitelist for remaining annotation warnings Certain annotations are expected to remain in the IR until LowerToHW runs. For example, annotations that prevent a pass from running on an operation have no effect if the pass doesn't run at all. But in that case, the pass also hasn't consume the annotations. This includes things like don't-obfuscate and don't-dedup. This PR adds a whitelist to `warnOnRemainingAnnotations` in the `LowerToHW` pass to allow a select set of annotations to be silently dropped.

view details

Fabian Schuiki

commit sha 02fb43f665dfa768c0acc4d6a90e1e734318c6bd

[ExportVerilog] Add option to force wires in event control exprs Add the `exprInEventControl` lowering option to `ExportVerilog`, which if forces the emitted Verilog to spill constants (which live in a `localparam`) into a `wire` when they are used as part of an event control (`@(posedge ...)`). The `exprInEventControl` option restores the old behavior of allowing arbitrary expressions in the event control. Fixes #1450.

view details

Julian Oppermann

commit sha abdaa891df56696f3a8c93e3e7b7359878c8a987

[Scheduling] Define cyclic problem. (#1476) Straightforward extension of the basic scheduling problem: - Dependences have an optional distance property. - The cyclic problem has a solution property initiation interval (II). - The solution is valid iff for each dependence i -> j with distance dist (default value 0, if not set), i finishes before j starts dist iterations/samples/pipeline starts/etc. later. Formally: startTime(i) + latency(assocOpr(i)) <= startTime(j) + dist * II

view details

Hanchen Ye

commit sha da0216bda0145f3a2297fcf6a075fca33072e6ce

Upgrade C++ standard to C++17 (#1482)

view details

Mike Urbach

commit sha c9af2e1a441ecaf8c41ebef0238d3a683f0c495e

[Python] Move remaining functionality behind the C-API, NFC. There were some bits of the ESI and MSFT native pybind11 modules that directly called into the CIRCT C++ libraries. This moves that functionality out of the modules and behind the C-API. This proper layering needs to be enforced before we can implement the upcoming migration to use the improved upstream Python binding mechanism. Also, this ensures all of the C-API functions used by the Python bindings are annotated with MLIR_CAPI_EXPORTED, which will also become required.

view details

Mike Urbach

commit sha 8fadf7a9acda635599e6601be8c6d318cd269c92

[PyCDE] Re-name types->pycde_types, NFC. I once again ran into issues with circular imports related to the pycde.types module. This time I dug into it a bit, and I think the issue is that there is a builtin types module in Python. If, in the process of importing pycde.types, anything imports types, there will be an error related to importing a partially initialized module. This just renames pycde.types to the redundant pycde.pycde_types to be sure there is no conflict with the builtin types module.

view details

Mike Urbach

commit sha e4a94ec3917830237ea8359be577537616a94dd5

[CMake] Set CXX_VISIBILITY_PRESET to "default" for some libs, NFC. This should be in line with the CMake default, but in an upcoming change, I would like to update the default we build with to "hidden". This will let us change the default without worrying about these specific shared libraries, or annotating each function in the libraries with a visibility attribute.

view details

Mike Urbach

commit sha 9b33fd42525a4c347cc6f6560b772b7f8957cfa9

[CMake] Ensure llhd-sim rebuilds runtime wrappers, NFC. When llhd-sim is enabled, this makes sure the circt-llhd-signals-runtime-wrappers shared library is re-built before testing, which is helpful instead of manually cleaning it.

view details

John Demme

commit sha d0bfdbc2d6fad89c0f6a9ea0880bc7f3edfba6d0

Fixing some tests for Windows

view details

John Demme

commit sha ff2c7b987e8151927d86e8d3ff7fd06059c21865

[CAPI] Re-enable the C API test on Windows

view details

Schuyler Eldridge

commit sha f7af2395d5367cef59a39884b6801438c3d03589

[FIRRTL] Add location to unknown field error, NFC Include location information in the error if the user tries to parse a FIRRTL file that contains a non-existent subfield in a bundle. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>

view details

Schuyler Eldridge

commit sha 0be1d705d2672f8f1a18a18b024ee395b90a7030

[FIRRTL] Add Parser check of non-bundle subfield Add a check in the FIRRTL Parser that will error if a user tries to pass in a subfield of a non-bundle type. Add one test checking this behavior. This fixes the previous behavior: a parser crash. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>

view details

Schuyler Eldridge

commit sha 03cb071c7bdab36ec859541eff33e2f215dcce3b

[FIRRTL] Trim whitespace in test, NFC Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>

view details

Chris Lattner

commit sha 666489c93e905870732c1766cefecae5d5e5a8f2

[tests] relax regex's for better windows support. Windows prints paths as \\ which is two characters. See Issue #376

view details

Schuyler Eldridge

commit sha 3a37ecc9c030ec548e20c9917a432a09bd567fc5

[FIRRTL] Update output ports in IMCP lattice (#1490) Change IMCP to update output ports and not just _external_ users of output ports. Output ports have wire-like semantics and may be read from as well as written to. Add a test that IMCP doesn't remove registers which are illegal to remove. This is testing both RegOp and RegResetOp across a wide array of different formulations which tickle weird behavior in IMCP. Add a test that IMCP works for RHS output port. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>

view details

John Demme

commit sha 75373aafcbd85838629c2e93285d60393fc572a1

[PyCDE] Move `create_type_string` to make it usable by users

view details

Schuyler Eldridge

commit sha d242b8340bce0774beb701f9a5ad340fa8297bbb

Revert "[FIRRTL][LowerToHW] Handle 0-bit mux sel (#1349)" Revert a984a22ff22bd11460faea34dafb1efbe1e43e4a. This reverts changes that allowed a FIRRTL mux with a 0-bit condition to both be constructed and folded to the false condition. The consensus is that this is something that should _not_ be allowed in the FIRRTL spec and should be an error. Fixes #1471. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>

view details

Schuyler Eldridge

commit sha 2aed5fc897ba117ad9338669e26d47cea95541f2

[FIRRTL] Infer width from mux sel for known result (#1491) Relax short circuit logic inside InferWidths so that a MuxPrimOp still generates constraints from its select line (which sets a hard requirement on a 1-bit width) even if the width of the mux result is already known. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>

view details

mikeurbach

commit sha 8a792f8b597f274519b2a65cdbdd625e120aecb1

[Python] Re-work Python bindings using upstream improvements. (#1484) This is mostly mechanical for us. Some notable changes: * Require a unified build for Python in CMake, docs, and CI * New CMake defaults for some variables in CMakeLists.txt * Use the new CMake functions for Python bindings and PyCDE * Update imports for generated Python and Python extension libraries * Update PYTHONPATH to reflect the new location under unified builds

view details

push time in a day

pull request commentllvm/circt

[Calyx] Add OpAsmInterface for components. Use all ports as block arguments.

Thanks Mike!

cgyurgyik

comment created time in a day

push eventllvm/circt

cgyurgyik

commit sha 8e0dd1d4eda8e847bd4d0c47fafb9622fa7e4dcc

edits.

view details

push time in a day

delete branch llvm/circt

delete branch : calyx-comp

delete time in a day

push eventllvm/circt

Chris Gyurgyik

commit sha 3690626cef8b3e75a06290288761f41f87a22fb5

[Calyx] Add OpAsmInterface for components. Use all ports as block arguments. (#1479) This PR adds the OpAsmInterface for components, to allow explicit names for block arguments. Since continuous assignments within a component may use both the arguments and results of its parent, I've decided the FIRRTL-like approach is cleaner. This means all ports are listed as block arguments.

view details

push time in a day

PR merged llvm/circt

[Calyx] Add OpAsmInterface for components. Use all ports as block arguments. Calyx

This PR adds the OpAsmInterface for components, to allow explicit names for block arguments. Since continuous assignments within a component may use both the arguments and results of its parent, I've decided the FIRRTL-like approach is cleaner. This means all ports are listed as block arguments.

Cleanup:

  • Just use a single attribute for all port names. Distinguish input ports and output ports by another attribute.
+128 -113

0 comment

5 changed files

cgyurgyik

pr closed time in a day

push eventllvm/circt

cgyurgyik

commit sha b7ba229bb2e07f2f39b2b127e995a8fee4336957

Update lib.

view details

push time in 6 days

push eventllvm/circt

cgyurgyik

commit sha 661403172090cd181bd1999b0aa279522936bffe

cont.

view details

push time in 6 days