profile
viewpoint
Rui Ueyama rui314 Google Tokyo, Japan

rui314/8cc 4611

A Small C Compiler

rui314/9cc 1407

A Small C Compiler

rui314/minilisp 686

A readable lisp in less than 1k lines of C

rui314/chibicc 213

chibicc

rui314/msvc-demangler 23

Demangler for MSVC symbols

rui314/c-standard 11

Clone of http://nsz.repo.hu/git/?p=c-standard

rui314/legacy-cc 9

The earliest versions of the very first c compiler known to exist in the wild written by the late legend himself dmr.

push eventrui314/cs230

Rui Ueyama

commit sha 836fc90577160d80e3759646ed269273067479e7

temporary

view details

push time in 2 days

create barnchrui314/cs230

branch : master

created branch time in 2 days

created repositoryrui314/cs230

created time in 2 days

push eventllvm/llvm-project

Rui Ueyama

commit sha 69da7e29dea659563f3b64edb7b45cb2aec817c2

Revert an accidental commit af5ca40b47b3e85c3add81ccdc0b787c4bc355ae

view details

push time in 2 months

push eventllvm/llvm-project

Rui Ueyama

commit sha af5ca40b47b3e85c3add81ccdc0b787c4bc355ae

temporary

view details

Rui Ueyama

commit sha 6faf8bdcc469fc75bc5c9d09a6bd92c1a0c381d0

Update the man page Add a description about the compression level of the debug info. Differential Revision: https://reviews.llvm.org/D71385

view details

push time in 2 months

push eventllvm/llvm-project

Rui Ueyama

commit sha a7acba29c19ac67c77ed282ec9432602ae21268d

Use InitLLVM in clang-tidy Update clang-tidy to use InitLLVM, like several other llvm tools that were previously updated. On Windows, this allows clang-tidy to operate on arguments containing characters which cannot be represented in the system's ANSI code page such as filenames with Unicode characters. Fixes bugzilla bug 43751. Patch by Tristan Labelle. Differential Revision: https://reviews.llvm.org/D70694

view details

push time in 3 months

push eventllvm/llvm-project

Rui Ueyama

commit sha 3f76260dc0674cc0acb25f550a0f0c594cf537ea

Use InitLLVM to setup a pretty stack printer InitLLVM does not only save a few lines from main() but also makes the commands do the right thing for multibyte character pathnames on Windows (i.e. canonicalize argv's to UTF-8) because of the code we have in this file: https://github.com/llvm/llvm-project/blob/master/llvm/lib/Support/InitLLVM.cpp#L32 For many LLVM commands, we already have calls of InitLLVM, but there are still remainings. Differential Revision: https://reviews.llvm.org/D70702

view details

push time in 3 months

push eventllvm/llvm-project

Rui Ueyama

commit sha 47feae5dd61d891d4c1382b9784738111b4f9396

Use lld::make<T> to make TpiSource objects In lld we rarely use std::unique_ptr but instead allocate new instances using lld::make<T>() so that they are deallocated at the end of linking. This patch changes existing code so that that follows the convention. Differential Revision: https://reviews.llvm.org/D70420

view details

push time in 3 months

push eventllvm/llvm-project

Rui Ueyama

commit sha 45f8ee5f3c5ad4bc0b041c49a251d674c14dbc13

Revert "Fix shared lib build." This reverts commit 17e37ba57a696198c9744eeba4f8f293f155587a because it introduced a circular dependency between Core and Common. Because d0371f473675ede1d79a615ec4fdf0cf5368944c fixed a build issue, we no longer need that dependency.

view details

push time in 3 months

push eventllvm/llvm-project

Rui Ueyama

commit sha d0371f473675ede1d79a615ec4fdf0cf5368944c

Fix component build b11386f9be9b2dc7276a758d64f66833da10bdea broke lld build if `-DBUILD_SHARED_LIBS=ON` is passed to CMake.

view details

push time in 3 months

push eventllvm/llvm-project

Rui Ueyama

commit sha 909d7bf9a7c5eb728f4660541ab33089132409fe

Fix Windows buildbots `stdout` and `stderr` might be defined as macros, so we needed to avoid using them as variable names.

view details

push time in 3 months

push eventllvm/llvm-project

Rui Ueyama

commit sha b11386f9be9b2dc7276a758d64f66833da10bdea

Make it possible to redirect not only errs() but also outs() This change is for those who use lld as a library. Context: https://reviews.llvm.org/D70287 This patch adds a new parmeter to lld::*::link() so that we can pass an raw_ostream object representing stdout. Previously, lld::*::link() took only an stderr object. Justification for making stdoutOS and stderrOS mandatory: I wanted to make link() functions to take stdout and stderr in that order. However, if we change the function signature from bool link(ArrayRef<const char *> args, bool canExitEarly, raw_ostream &stderrOS = llvm::errs()); to bool link(ArrayRef<const char *> args, bool canExitEarly, raw_ostream &stdoutOS = llvm::outs(), raw_ostream &stderrOS = llvm::errs()); , then the meaning of existing code that passes stderrOS silently changes (stderrOS would be interpreted as stdoutOS). So, I chose to make existing code not to compile, so that developers can fix their code. Differential Revision: https://reviews.llvm.org/D70292

view details

push time in 3 months

push eventllvm/llvm-project

Rui Ueyama

commit sha 000ff301e74b216c23ee60344977b2b6692ac70c

Warn on /align if used without /driver /align is not supposed to be used without /driver, so it makes sense to warn if only /align is passed. MSVC link.exe warns on this too. Differential Revision: https://reviews.llvm.org/D70163

view details

push time in 3 months

push eventllvm/llvm-project

Rui Ueyama

commit sha f95ed69641d5431a3789e7ea5d4f7837eaae18f3

Implement /driver, /driver:wdm and /driver:uponly This patch implements /driver, /driver:wdm and /driver:uponly as described in https://docs.microsoft.com/en-us/cpp/build/reference/driver-windows-nt-kernel-mode-driver?view=vs-2019. Differential Revision: https://reviews.llvm.org/D70162

view details

push time in 3 months

push eventllvm/llvm-project

Rui Ueyama

commit sha f95273f75aaa5db5493aea7902416ce3d5a09043

Keep symbols passed by -init and -fini Previously, symbols passed by -init and -fini look as if they are not referenced by anyone, and the LTO might eliminate them. This patch fixes the issue. Fixes a bug reported in https://bugs.llvm.org/show_bug.cgi?id=43927 Differential Revision: https://reviews.llvm.org/D69985

view details

push time in 4 months

push eventrui314/9cc

Rui Ueyama

commit sha ea2f4b8bdedef70dc9e1dcbf99c255c94e0fa2fe

Update README.md

view details

push time in 4 months

push eventrui314/chibicc

Rui Ueyama

commit sha b253dbf95cf5b75be4ca1f2925dbc2e06d8b8c18

Add enum

view details

Rui Ueyama

commit sha 095bbbec20876a1901ea8602ed293605680714bd

Support file-scope functions

view details

Rui Ueyama

commit sha 264dc72ac778185f83d9a29d7f8495052f8f79d7

Allow for-loops to define local variables

view details

Rui Ueyama

commit sha cb487bf9e161c095d20490a486a93e4270c5abea

Add examples/nqueen.c

view details

Rui Ueyama

commit sha 7c348c85b02f1486f2a09c0ae9384f8ee08228fc

Add comma operator

view details

Rui Ueyama

commit sha 7d718c983f2f41a258a37b174458bacf2512cd78

Add ++ and -- operators

view details

Rui Ueyama

commit sha 05e907d2b8a94103d60148ce90e27ca191ad5446

Add +=, -=, *= and /= operators

view details

Rui Ueyama

commit sha f78c409856f682b1b43e53d4eac8df56aab5c43a

Add hexadecimal, octal and binary number literals

view details

Rui Ueyama

commit sha 5ec5e38289674452608b35da178c9c89c1167149

Add ! operator

view details

Rui Ueyama

commit sha 03acdd2ed9e019506c709e3409d9607f2f40faa0

Add ~ operator

view details

Rui Ueyama

commit sha 2586416967029d2d38c79fe4b1307fe3e9d3dc55

Add |, & and ^ operators

view details

Rui Ueyama

commit sha 42f607578771c021c8b8314c9921651742efb1d4

Add && and || operators

view details

Rui Ueyama

commit sha 6f24dbde5b5a1a92bf59ea1b595cbce6e9382777

Add a notion of an incomplete array type

view details

Rui Ueyama

commit sha ed316955a8372b72b0cfb537096c15ec9f905252

Implement array-to-pointer decay in the func param context

view details

Rui Ueyama

commit sha 6f59ac376a0b666cf49c85cf6fd02df796e0d64a

Add a notion of an incomplete struct type

view details

Rui Ueyama

commit sha afd829689fcd508fa11c4fdaa6d074dedb47aaa6

Add break statement

view details

Rui Ueyama

commit sha 08f3970c58e2fe6996e56b6446d15c01a725bf09

Add continue statement

view details

Rui Ueyama

commit sha 3ccdb2974f4630b7f9c2a85aca4619c9701e8a30

Add goto and labeled statement

view details

Rui Ueyama

commit sha f3bdaefbc8c96956de045ab2e2adce5e1da6fe9e

Add switch-case

view details

Rui Ueyama

commit sha 8a207a4dc7e1f548bcca82c6ed56559f9aa80668

Allow functions returning void

view details

push time in 5 months

push eventrui314/chibicc

Rui Ueyama

commit sha dc036466140c5d7b9d403ef2d77a7eec9113ca16

Add a tokenizer to allow space characters between tokens

view details

Rui Ueyama

commit sha 4f057575cbe790507f0d107d1f5df54a300983ee

Improve error message Now, chibicc can print out an error message with an error location like this: $ ./chibicc 1+foo 1+foo ^ expected a number

view details

Rui Ueyama

commit sha ad0588a71705ec4dad0bdaff4d3effbba167b05a

Add *, / and ()

view details

Rui Ueyama

commit sha b00c7c562beba60afa95928c9a0e93df6b7dcea1

Add unary plus and minus

view details

Rui Ueyama

commit sha 24a813c53df5871fadd17dd3a94816c6c3f59059

Handle reserved tokens as strings instead of characters

view details

Rui Ueyama

commit sha 99bd7171e143ccf4ca139d76f3ef77942e2a6bea

Add ==, !=, <= and >= operators

view details

Rui Ueyama

commit sha 6eb2c2b4ee7d4c83a9e1fb2700c0be38a6147f63

Split main.c into multiple small files

view details

Rui Ueyama

commit sha 92bced2f8af2aa9d532bab615b42ad86aa55c1df

Accept multiple statements separated by semicolons

view details

Rui Ueyama

commit sha d0c3ed7dc99fd4df89421a5aedf962e9b7c7d2aa

Add "return" statement

view details

Rui Ueyama

commit sha 25f4523236838402cced85b0611b433aabd402d5

Add the notion of the expression statement

view details

Rui Ueyama

commit sha 4216d6c4cff60a4677a9e52faa7562595b9dedff

Support single-letter local variables

view details

Rui Ueyama

commit sha 8fdc5aa41770c024ce732826b7c6b18716df1a42

Support multi-letter local variables

view details

Rui Ueyama

commit sha b3d4b80260558626787c9998a1172f5cb4425da9

Add "if" statement

view details

Rui Ueyama

commit sha 913319ff27a8369216203b56813769f48ab93d4f

Add "while" statement

view details

Rui Ueyama

commit sha 8dab60e49c295d43d7553ced18525da8f2eb38ed

Add "for" statement

view details

Rui Ueyama

commit sha be91a3587bb440b4e5fec9698c12468024c35486

Add { ... }

view details

Rui Ueyama

commit sha f0fe1c88abe7c10e5f48909e98af849eb162eb0a

Add LICENSE and README.md

view details

Rui Ueyama

commit sha 9dddc1d3597562b656b5935a29a41bbc9103d855

Support argument-less function calls

view details

Rui Ueyama

commit sha ed3fc2989408f21406e576aa9acfea76044afe67

Support function call with up to 6 arguments

view details

Rui Ueyama

commit sha ee423036ed953e5d29a6edc016cf80363e0385ba

Make sure that stack frames are aligned to 16 bytes boundaries

view details

push time in 5 months

push eventrui314/chibicc

Rui Ueyama

commit sha 190e0a3f6244ffcc490b8e5c069a3e7b36b0239f

Add a tokenizer to allow space characters between tokens

view details

Rui Ueyama

commit sha ded871c3893d5abb09c9e3c1c4a4b06ab2ecdfe2

Improve error message Now, chibicc can print out an error message with an error location like this: $ ./chibicc 1+foo 1+foo ^ expected a number

view details

Rui Ueyama

commit sha dd55f8e668425fc3aa221b03c3ef0487e93562d2

Add *, / and ()

view details

Rui Ueyama

commit sha 69ef02559d6dcea122d45956aa7d9d6f282b3217

Add unary plus and minus

view details

Rui Ueyama

commit sha e6fd6ce7226e3b2afd85c08834bce60d4d10ca32

Handle reserved tokens as strings instead of characters

view details

Rui Ueyama

commit sha 05b01b11c531948eaff83964b880a3b250143904

Add ==, !=, <= and >= operators

view details

Rui Ueyama

commit sha 769e459701b3834c5eeaa2eea84e1a9e98321a10

Split main.c into multiple small files

view details

Rui Ueyama

commit sha 0c6de5366d2ac20eee4002c1bcc69e2daa8e723c

Accept multiple statements separated by semicolons

view details

Rui Ueyama

commit sha 362af11bb3b230075b79816d52ab92c841bfbda8

Add "return" statement

view details

Rui Ueyama

commit sha 3018758bc98ab614ba640c4993a149108d840caa

Add the notion of the expression statement

view details

Rui Ueyama

commit sha c533a3e6e77457cfdc921c66442f16454cf54fac

Support single-letter local variables

view details

Rui Ueyama

commit sha 7a095e3d6aaa6c53e2a5e5ebc764fae7b75bdc2f

Support multi-letter local variables

view details

Rui Ueyama

commit sha 6d27f2fd1abf5ff2a131c6a4cfd9b8e3f3a4f316

Add "if" statement

view details

Rui Ueyama

commit sha d1c95364dfe83aa9abf8fe4f0296c435f616bd8b

Add "while" statement

view details

Rui Ueyama

commit sha d3e3ec856cf7ecd1007b5c503515cc214e3d4727

Add "for" statement

view details

Rui Ueyama

commit sha 5ef584717e1f655c58100984cbc3e9ebc6c0b596

Add { ... }

view details

Rui Ueyama

commit sha 56d3c1e25f5c42eaaf6be94a5d491aa12e512a58

Add LICENSE and README.md

view details

Rui Ueyama

commit sha 4a348badfb82a9a0dcc80f51a2a79aa653600c76

Support argument-less function calls

view details

Rui Ueyama

commit sha 09a4831446d611b41c9ad5e890ee1d495d0471cc

Support function call with up to 6 arguments

view details

Rui Ueyama

commit sha d851efaa774e056bfb0c39f7b29314a933bb55e7

Make sure that stack frames are aligned to 16 bytes boundaries

view details

push time in 5 months

more