A C compiler for LLVM. Supports C++11/14/1z C11

Overview

The LLVM Compiler Infrastructure

This directory and its sub-directories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and run-time environments.

The README briefly describes how to get started with building LLVM. For more information on how to contribute to the LLVM project, please take a look at the Contributing to LLVM guide.

Getting Started with the LLVM System

Taken from https://llvm.org/docs/GettingStarted.html.

Overview

Welcome to the LLVM project!

The LLVM project has multiple components. The core of the project is itself called "LLVM". This contains all of the tools, libraries, and header files needed to process intermediate representations and converts it into object files. Tools include an assembler, disassembler, bitcode analyzer, and bitcode optimizer. It also contains basic regression tests.

C-like languages use the Clang front end. This component compiles C, C++, Objective-C, and Objective-C++ code into LLVM bitcode -- and from there into object files, using LLVM.

Other components include: the libc++ C++ standard library, the LLD linker, and more.

Getting the Source Code and Building LLVM

The LLVM Getting Started documentation may be out of date. The Clang Getting Started page might have more accurate information.

This is an example work-flow and configuration to get and build the LLVM source:

  1. Checkout LLVM (including related sub-projects like Clang):

    • git clone https://github.com/llvm/llvm-project.git

    • Or, on windows, git clone --config core.autocrlf=false https://github.com/llvm/llvm-project.git

  2. Configure and build LLVM and Clang:

    • cd llvm-project

    • cmake -S llvm -B build -G [options]

      Some common build system generators are:

      • Ninja --- for generating Ninja build files. Most llvm developers use Ninja.
      • Unix Makefiles --- for generating make-compatible parallel makefiles.
      • Visual Studio --- for generating Visual Studio projects and solutions.
      • Xcode --- for generating Xcode projects.

      Some Common options:

      • -DLLVM_ENABLE_PROJECTS='...' --- semicolon-separated list of the LLVM sub-projects you'd like to additionally build. Can include any of: clang, clang-tools-extra, libcxx, libcxxabi, libunwind, lldb, compiler-rt, lld, polly, or debuginfo-tests.

        For example, to build LLVM, Clang, libcxx, and libcxxabi, use -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi".

      • -DCMAKE_INSTALL_PREFIX=directory --- Specify for directory the full path name of where you want the LLVM tools and libraries to be installed (default /usr/local).

      • -DCMAKE_BUILD_TYPE=type --- Valid options for type are Debug, Release, RelWithDebInfo, and MinSizeRel. Default is Debug.

      • -DLLVM_ENABLE_ASSERTIONS=On --- Compile with assertion checks enabled (default is Yes for Debug builds, No for all other build types).

    • cmake --build build [-- [options] ] or your build system specified above directly.

      • The default target (i.e. ninja or make) will build all of LLVM.

      • The check-all target (i.e. ninja check-all) will run the regression tests to ensure everything is in working order.

      • CMake will generate targets for each tool and library, and most LLVM sub-projects generate their own check- target.

      • Running a serial build will be slow. To improve speed, try running a parallel build. That's done by default in Ninja; for make, use the option -j NNN, where NNN is the number of parallel jobs, e.g. the number of CPUs you have.

    • For more information see CMake

Consult the Getting Started with LLVM page for detailed information on configuring and compiling LLVM. You can visit Directory Layout to learn about the layout of the source code tree.

Comments
  • [META] Using LLD as FreeBSD's system linker

    [META] Using LLD as FreeBSD's system linker

    | | | | --- | --- | | Bugzilla Link | 23214 | | Resolution | FIXED | | Resolved on | Nov 04, 2020 12:16 | | Version | unspecified | | OS | FreeBSD | | Depends On | llvm/llvm-project#21350 llvm/llvm-project#23280 llvm/llvm-project#23398 llvm/llvm-project#23409 llvm/llvm-project#23605 llvm/llvm-project#23606 llvm/llvm-project#23607 llvm/llvm-project#25562 llvm/llvm-project#25902 llvm/llvm-project#25961 llvm/llvm-project#26164 llvm/llvm-project#26172 llvm/llvm-project#27050 llvm/llvm-project#27067 llvm/llvm-project#27073 llvm/llvm-project#27079 llvm/llvm-project#27086 llvm/llvm-project#27103 llvm/llvm-project#27104 llvm/llvm-project#27105 llvm/llvm-project#27106 llvm/llvm-project#27111 llvm/llvm-project#27187 llvm/llvm-project#27188 llvm/llvm-project#27192 llvm/llvm-project#27252 llvm/llvm-project#27342 llvm/llvm-project#27390 llvm/llvm-project#27602 llvm/llvm-project#27780 llvm/llvm-project#27781 llvm/llvm-project#28021 llvm/llvm-project#28267 llvm/llvm-project#28723 llvm/llvm-project#28731 llvm/llvm-project#28733 llvm/llvm-project#28788 llvm/llvm-project#29062 llvm/llvm-project#29063 llvm/llvm-project#29064 llvm/llvm-project#29092 llvm/llvm-project#29346 llvm/llvm-project#29369 llvm/llvm-project#29463 llvm/llvm-project#29485 llvm/llvm-project#29566 llvm/llvm-project#29569 llvm/llvm-project#29570 llvm/llvm-project#29585 llvm/llvm-project#29616 llvm/llvm-project#29617 llvm/llvm-project#29630 llvm/llvm-project#29659 llvm/llvm-project#29660 llvm/llvm-project#29754 llvm/llvm-project#29763 llvm/llvm-project#30239 llvm/llvm-project#30405 llvm/llvm-project#30496 llvm/llvm-project#30497 llvm/llvm-project#30507 llvm/llvm-project#30544 llvm/llvm-project#30561 llvm/llvm-project#30569 llvm/llvm-project#30625 llvm/llvm-project#30643 llvm/llvm-project#30843 llvm/llvm-project#30930 llvm/llvm-project#30967 llvm/llvm-project#31064 llvm/llvm-project#31110 llvm/llvm-project#31851 llvm/llvm-project#32769 llvm/llvm-project#32770 llvm/llvm-project#32829 llvm/llvm-project#33113 llvm/llvm-project#33167 llvm/llvm-project#33168 llvm/llvm-project#33512 llvm/llvm-project#33659 llvm/llvm-project#34918 llvm/llvm-project#35068 llvm/llvm-project#35099 llvm/llvm-project#35136 llvm/llvm-project#35357 llvm/llvm-project#35365 | | CC | @adalava,@asl,@glaubitz,@grimreaper,@markmi,@rengolin,@rui314,@lattera |

    Extended Description

    This is a meta-bug to track dependencies needed for LLD to be functional as FreeBSD's system linker.

    bugzilla lld:ELF 
    opened by emaste 145
  • [meta] 11.0.0 Release Blockers

    [meta] 11.0.0 Release Blockers

    | | | | --- | --- | | Bugzilla Link | 46725 | | Resolution | FIXED | | Resolved on | Apr 01, 2021 07:55 | | Version | 11.0 | | OS | All | | Depends On | llvm/llvm-project#34308 llvm/llvm-project#43252 llvm/llvm-project#43965 llvm/llvm-project#44563 llvm/llvm-project#45251 llvm/llvm-project#45357 llvm/llvm-project#45491 llvm/llvm-project#45800 llvm/llvm-project#45938 llvm/llvm-project#46025 llvm/llvm-project#46033 llvm/llvm-project#46057 llvm/llvm-project#46075 llvm/llvm-project#46085 llvm/llvm-project#46088 llvm/llvm-project#46098 llvm/llvm-project#46099 llvm/llvm-project#46104 llvm/llvm-project#46106 llvm/llvm-project#46107 llvm/llvm-project#46109 llvm/llvm-project#46110 llvm/llvm-project#46123 llvm/llvm-project#46128 llvm/llvm-project#46129 llvm/llvm-project#46134 llvm/llvm-project#46138 llvm/llvm-project#46150 llvm/llvm-project#46151 llvm/llvm-project#46160 llvm/llvm-project#46164 llvm/llvm-project#46167 llvm/llvm-project#46171 llvm/llvm-project#46196 llvm/llvm-project#46198 llvm/llvm-project#46201 llvm/llvm-project#46207 llvm/llvm-project#46212 llvm/llvm-project#46213 llvm/llvm-project#46216 llvm/llvm-project#46221 llvm/llvm-project#46231 llvm/llvm-project#46233 llvm/llvm-project#46237 llvm/llvm-project#46248 llvm/llvm-project#46249 llvm/llvm-project#46255 llvm/llvm-project#46256 llvm/llvm-project#46264 llvm/llvm-project#46265 llvm/llvm-project#46267 llvm/llvm-project#46275 llvm/llvm-project#46280 llvm/llvm-project#46284 llvm/llvm-project#46320 llvm/llvm-project#46328 llvm/llvm-project#46339 llvm/llvm-project#46344 llvm/llvm-project#46345 llvm/llvm-project#46365 llvm/llvm-project#46381 llvm/llvm-project#46385 llvm/llvm-project#46440 llvm/llvm-project#46452 llvm/llvm-project#46467 llvm/llvm-project#46477 llvm/llvm-project#46478 llvm/llvm-project#46483 llvm/llvm-project#46495 llvm/llvm-project#46496 llvm/llvm-project#46521 llvm/llvm-project#46525 llvm/llvm-project#46528 llvm/llvm-project#46529 llvm/llvm-project#46530 llvm/llvm-project#46531 llvm/llvm-project#46545 llvm/llvm-project#46550 llvm/llvm-project#46564 llvm/llvm-project#46567 llvm/llvm-project#46572 llvm/llvm-project#46573 llvm/llvm-project#46595 llvm/llvm-project#46603 llvm/llvm-project#46608 llvm/llvm-project#46614 llvm/llvm-project#46622 llvm/llvm-project#46628 llvm/llvm-project#46630 llvm/llvm-project#46631 llvm/llvm-project#46637 llvm/llvm-project#46638 llvm/llvm-project#46648 llvm/llvm-project#46666 llvm/llvm-project#46670 llvm/llvm-project#46675 llvm/llvm-project#46680 llvm/llvm-project#46691 llvm/llvm-project#46699 llvm/llvm-project#46703 llvm/llvm-project#46717 llvm/llvm-project#46718 llvm/llvm-project#46719 llvm/llvm-project#46732 llvm/llvm-project#46743 llvm/llvm-project#46752 llvm/llvm-project#46767 llvm/llvm-project#46784 llvm/llvm-project#46787 llvm/llvm-project#46789 llvm/llvm-project#46798 llvm/llvm-project#46800 llvm/llvm-project#46808 llvm/llvm-project#46812 llvm/llvm-project#46813 llvm/llvm-project#46829 llvm/llvm-project#46834 llvm/llvm-project#46856 llvm/llvm-project#46860 llvm/llvm-project#46861 llvm/llvm-project#46870 llvm/llvm-project#46905 llvm/llvm-project#46963 llvm/llvm-project#46974 llvm/llvm-project#47023 llvm/llvm-project#47079 | | CC | @alexey-bataev,@BenPope,@chfast,@hokein,@JVApen,@kubkon,@LebedevRI,@bzEq,@RKSimon,@sorear |

    Extended Description

    This is the meta-bug for tracking 11.0.0 release blockers.

    Rather than adding comments here, please file bugs and mark them as blocking this one.

    The 11.0.0 release branch was created at 2e10b7a39b930ef8d9c4362509d8835b221fbc0a

    bugzilla 
    opened by zmodem 118
  • [meta] 9.0.0 Release Blockers

    [meta] 9.0.0 Release Blockers

    | | | | --- | --- | | Bugzilla Link | 42474 | | Resolution | FIXED | | Resolved on | Sep 25, 2020 16:06 | | Version | 9.0 | | OS | All | | Depends On | llvm/llvm-project#42206 llvm/llvm-project#32583 llvm/llvm-project#37839 llvm/llvm-project#39829 llvm/llvm-project#40020 llvm/llvm-project#40038 llvm/llvm-project#40107 llvm/llvm-project#40117 llvm/llvm-project#40355 llvm/llvm-project#40557 llvm/llvm-project#40733 llvm/llvm-project#41072 llvm/llvm-project#41820 llvm/llvm-project#41858 llvm/llvm-project#41920 llvm/llvm-project#41931 llvm/llvm-project#41948 llvm/llvm-project#41991 llvm/llvm-project#42010 llvm/llvm-project#42012 llvm/llvm-project#42014 llvm/llvm-project#42015 llvm/llvm-project#42020 llvm/llvm-project#42022 llvm/llvm-project#42023 llvm/llvm-project#42024 llvm/llvm-project#42030 llvm/llvm-project#42056 llvm/llvm-project#42057 llvm/llvm-project#42060 llvm/llvm-project#42064 llvm/llvm-project#42069 llvm/llvm-project#42070 llvm/llvm-project#42084 llvm/llvm-project#42085 llvm/llvm-project#42097 llvm/llvm-project#42105 llvm/llvm-project#42108 llvm/llvm-project#42114 llvm/llvm-project#42120 llvm/llvm-project#42126 llvm/llvm-project#42135 llvm/llvm-project#42136 llvm/llvm-project#42157 llvm/llvm-project#42164 llvm/llvm-project#42168 llvm/llvm-project#42169 llvm/llvm-project#42171 llvm/llvm-project#42174 llvm/llvm-project#42178 llvm/llvm-project#42181 llvm/llvm-project#42188 llvm/llvm-project#42200 llvm/llvm-project#42202 llvm/llvm-project#42204 llvm/llvm-project#42229 llvm/llvm-project#42232 llvm/llvm-project#42235 llvm/llvm-project#42236 llvm/llvm-project#42238 llvm/llvm-project#42252 llvm/llvm-project#42266 llvm/llvm-project#42271 llvm/llvm-project#42272 llvm/llvm-project#42280 llvm/llvm-project#42307 llvm/llvm-project#42311 llvm/llvm-project#42323 llvm/llvm-project#42330 llvm/llvm-project#42333 llvm/llvm-project#42336 llvm/llvm-project#42337 llvm/llvm-project#42356 llvm/llvm-project#42363 llvm/llvm-project#42366 llvm/llvm-project#42375 llvm/llvm-project#42401 llvm/llvm-project#42404 llvm/llvm-project#42407 llvm/llvm-project#42419 llvm/llvm-project#42440 llvm/llvm-project#42448 llvm/llvm-project#42463 llvm/llvm-project#42466 llvm/llvm-project#42477 llvm/llvm-project#42482 llvm/llvm-project#42493 llvm/llvm-project#42504 llvm/llvm-project#42512 llvm/llvm-project#42523 llvm/llvm-project#42541 llvm/llvm-project#42549 llvm/llvm-project#42567 llvm/llvm-project#42570 llvm/llvm-project#42575 llvm/llvm-project#42578 llvm/llvm-project#42581 llvm/llvm-project#42588 llvm/llvm-project#42589 llvm/llvm-project#42613 llvm/llvm-project#42654 | | CC | @alexey-bataev,@beccadax,@davidbolvansky,@efriedma-quic,@hahnjo,@JosephTremoulet,@jsonn,@JVApen,@RKSimon,@modocache,@pawelsopensource,@tlively,@wang-bin,@zoecarver |

    bugzilla 
    opened by tstellar 114
  • [meta] 6.0.0 Release Blockers

    [meta] 6.0.0 Release Blockers

    | | | | --- | --- | | Bugzilla Link | 35804 | | Resolution | FIXED | | Resolved on | Apr 25, 2018 07:10 | | Version | 6.0 | | OS | All | | Depends On | llvm/llvm-project#35869 llvm/llvm-project#36584 llvm/llvm-project#29531 llvm/llvm-project#30710 llvm/llvm-project#32714 llvm/llvm-project#33940 llvm/llvm-project#34097 llvm/llvm-project#34976 llvm/llvm-project#35046 llvm/llvm-project#35070 llvm/llvm-project#35072 llvm/llvm-project#35098 llvm/llvm-project#35109 llvm/llvm-project#35111 llvm/llvm-project#35121 llvm/llvm-project#35125 llvm/llvm-project#35136 llvm/llvm-bugzilla-archive#35799 llvm/llvm-project#35153 llvm/llvm-project#35154 llvm/llvm-project#35160 llvm/llvm-project#35162 llvm/llvm-project#35163 llvm/llvm-project#35164 llvm/llvm-project#35165 llvm/llvm-project#35168 llvm/llvm-project#35171 llvm/llvm-project#35178 llvm/llvm-project#35184 llvm/llvm-project#35196 llvm/llvm-project#35212 llvm/llvm-project#35213 llvm/llvm-project#35216 llvm/llvm-project#35220 llvm/llvm-project#35224 llvm/llvm-project#35231 llvm/llvm-project#35239 llvm/llvm-project#35241 llvm/llvm-project#35242 llvm/llvm-project#35252 llvm/llvm-project#35261 llvm/llvm-project#35263 llvm/llvm-project#35264 llvm/llvm-project#35290 llvm/llvm-project#35291 llvm/llvm-project#35302 llvm/llvm-project#35320 llvm/llvm-project#35324 llvm/llvm-project#35325 llvm/llvm-project#35329 llvm/llvm-project#35334 llvm/llvm-project#35339 llvm/llvm-project#35343 llvm/llvm-project#35344 llvm/llvm-project#35345 llvm/llvm-project#35352 llvm/llvm-project#35354 llvm/llvm-project#35356 llvm/llvm-project#35363 llvm/llvm-project#35366 llvm/llvm-project#35372 llvm/llvm-project#35375 llvm/llvm-project#35380 llvm/llvm-project#35382 llvm/llvm-project#35391 llvm/llvm-project#35393 llvm/llvm-project#35399 llvm/llvm-project#35403 llvm/llvm-project#35404 llvm/llvm-project#35405 llvm/llvm-project#35406 llvm/llvm-project#35407 llvm/llvm-project#35409 llvm/llvm-project#35417 llvm/llvm-project#35418 llvm/llvm-project#35419 llvm/llvm-project#35429 llvm/llvm-project#35437 llvm/llvm-project#35445 llvm/llvm-project#35456 llvm/llvm-project#35462 llvm/llvm-project#35474 llvm/llvm-project#35477 llvm/llvm-project#35484 llvm/llvm-project#35487 llvm/llvm-project#35490 llvm/llvm-project#35499 llvm/llvm-project#35524 llvm/llvm-project#35525 llvm/llvm-project#35526 llvm/llvm-project#35527 llvm/llvm-project#35530 llvm/llvm-project#35532 llvm/llvm-project#35536 llvm/llvm-project#35547 llvm/llvm-project#35552 llvm/llvm-project#35564 llvm/llvm-project#35627 llvm/llvm-project#35630 llvm/llvm-project#35636 llvm/llvm-project#35640 llvm/llvm-project#35655 llvm/llvm-project#35661 llvm/llvm-project#35669 llvm/llvm-project#35677 llvm/llvm-project#35678 llvm/llvm-project#35685 llvm/llvm-project#35686 llvm/llvm-project#35689 llvm/llvm-project#35690 llvm/llvm-project#35693 llvm/llvm-project#35698 llvm/llvm-project#35699 llvm/llvm-project#35700 llvm/llvm-project#35705 llvm/llvm-project#35710 llvm/llvm-project#35716 llvm/llvm-project#35720 llvm/llvm-project#35721 llvm/llvm-project#35723 llvm/llvm-project#35733 llvm/llvm-project#35750 llvm/llvm-project#35771 llvm/llvm-project#35810 llvm/llvm-project#35901 | | CC | @andrewrk,@hyp,@bebuch,@emaste,@hahnjo,@RKSimon,@StephanTLavavej |

    Extended Description

    This is the tracking bug for blockers of the 6.0.0 release.

    bugzilla 
    opened by zmodem 110
  • -DLLVM_LINK_LLVM_DYLIB:BOOL=ON produces many llvm test suite regressions

    -DLLVM_LINK_LLVM_DYLIB:BOOL=ON produces many llvm test suite regressions

    | | | | --- | --- | | Bugzilla Link | 26393 | | Resolution | FIXED | | Resolved on | Feb 16, 2016 11:18 | | Version | trunk | | OS | MacOS X | | Blocks | llvm/llvm-project#26433 | | Reporter | LLVM Bugzilla Contributor | | CC | @llvm-beanz,@delcypher,@jeremyhu |

    Extended Description

    Building llvm/clang/compiler-rt/polly/libc++/openmp with -DLLVM_LINK_LLVM_DYLIB:BOOL=ON on x86_64 results in many llvm test suite regressions.

    Expected Passes : 7605 Expected Failures : 51 Unsupported Tests : 3841 Unexpected Failures: 3853

    These all seem to be some variation of opt reporting an unknown command line argument being passed to it such as...

    FAIL: LLVM :: Analysis/BasicAA/2003-02-26-AccessSizeTest.ll (1 of 15350) ******************** TEST 'LLVM :: Analysis/BasicAA/2003-02-26-AccessSizeTest.ll' FAILED ******************** Script:

    gtimeout 1m /sw/src/fink.build/llvm39-3.9.0-1/build/stage3/./bin/opt < /sw/src/fink.build/llvm39-3.9.0-1/llvm-3.9.0.src/test/Analysis/BasicAA/2003-02-26-AccessSizeTest.ll -basicaa -gvn -instcombine -S | /sw/src/fink.build/llvm39-3.9.0-1/build/stage3/./bin/FileCheck /sw/src/fink.build/llvm39-3.9.0-1/llvm-3.9.0.src/test/Analysis/BasicAA/2003-02-26-AccessSizeTest.ll

    Exit Code: 2

    Command Output (stderr):

    opt: Unknown command line argument '-basicaa'. Try: '/sw/src/fink.build/llvm39-3.9.0-1/build/stage3/./bin/opt -help' opt: Did you mean '-passes'? opt: Unknown command line argument '-gvn'. Try: '/sw/src/fink.build/llvm39-3.9.0-1/build/stage3/./bin/opt -help' opt: Did you mean '-Os'? opt: Unknown command line argument '-instcombine'. Try: '/sw/src/fink.build/llvm39-3.9.0-1/build/stage3/./bin/opt -help' opt: Did you mean '-print-options'? FileCheck error: '-' is empty.

    --

    cmake bugzilla 
    opened by llvmbot 99
  • [meta] The FreeBSD source tree does not fully compile with Clang

    [meta] The FreeBSD source tree does not fully compile with Clang

    | | | | --- | --- | | Bugzilla Link | 3696 | | Resolution | FIXED | | Resolved on | May 06, 2011 16:21 | | Version | unspecified | | OS | FreeBSD | | Depends On | llvm/llvm-project#1251 llvm/llvm-project#3801 llvm/llvm-project#4050 llvm/llvm-project#4053 llvm/llvm-project#4054 llvm/llvm-project#4058 llvm/llvm-project#4059 llvm/llvm-project#4060 llvm/llvm-project#4062 llvm/llvm-project#4063 llvm/llvm-bugzilla-archive#3698 llvm/llvm-bugzilla-archive#3706 llvm/llvm-bugzilla-archive#3709 llvm/llvm-bugzilla-archive#3735 llvm/llvm-bugzilla-archive#3750 llvm/llvm-bugzilla-archive#3763 llvm/llvm-bugzilla-archive#3768 llvm/llvm-bugzilla-archive#3794 llvm/llvm-bugzilla-archive#3796 llvm/llvm-bugzilla-archive#3808 llvm/llvm-bugzilla-archive#3819 llvm/llvm-bugzilla-archive#3821 llvm/llvm-bugzilla-archive#3829 llvm/llvm-bugzilla-archive#3833 llvm/llvm-bugzilla-archive#3853 llvm/llvm-bugzilla-archive#3854 llvm/llvm-bugzilla-archive#3855 llvm/llvm-bugzilla-archive#3857 llvm/llvm-bugzilla-archive#3859 llvm/llvm-bugzilla-archive#3862 llvm/llvm-bugzilla-archive#3863 llvm/llvm-bugzilla-archive#3880 llvm/llvm-bugzilla-archive#3886 llvm/llvm-bugzilla-archive#3889 llvm/llvm-bugzilla-archive#3890 llvm/llvm-bugzilla-archive#3903 llvm/llvm-bugzilla-archive#3933 llvm/llvm-bugzilla-archive#3934 llvm/llvm-bugzilla-archive#3992 llvm/llvm-bugzilla-archive#4042 llvm/llvm-bugzilla-archive#4043 llvm/llvm-bugzilla-archive#4048 llvm/llvm-bugzilla-archive#4049 llvm/llvm-bugzilla-archive#4090 llvm/llvm-bugzilla-archive#4091 llvm/llvm-bugzilla-archive#4181 llvm/llvm-bugzilla-archive#4222 llvm/llvm-bugzilla-archive#4225 llvm/llvm-bugzilla-archive#4239 llvm/llvm-bugzilla-archive#4281 llvm/llvm-bugzilla-archive#4282 llvm/llvm-bugzilla-archive#4283 llvm/llvm-bugzilla-archive#4284 llvm/llvm-bugzilla-archive#4285 llvm/llvm-bugzilla-archive#4286 llvm/llvm-bugzilla-archive#4287 llvm/llvm-bugzilla-archive#4289 llvm/llvm-bugzilla-archive#4290 llvm/llvm-bugzilla-archive#4315 llvm/llvm-bugzilla-archive#4316 llvm/llvm-bugzilla-archive#4324 llvm/llvm-bugzilla-archive#4326 llvm/llvm-bugzilla-archive#4337 llvm/llvm-bugzilla-archive#4338 llvm/llvm-bugzilla-archive#4351 llvm/llvm-bugzilla-archive#4368 llvm/llvm-bugzilla-archive#4405 llvm/llvm-bugzilla-archive#4412 llvm/llvm-bugzilla-archive#4428 llvm/llvm-bugzilla-archive#4433 llvm/llvm-bugzilla-archive#4438 llvm/llvm-bugzilla-archive#4471 llvm/llvm-bugzilla-archive#4538 llvm/llvm-bugzilla-archive#4583 llvm/llvm-bugzilla-archive#4622 llvm/llvm-bugzilla-archive#4685 llvm/llvm-bugzilla-archive#4689 llvm/llvm-bugzilla-archive#4767 llvm/llvm-bugzilla-archive#4910 llvm/llvm-bugzilla-archive#5004 llvm/llvm-bugzilla-archive#5016 llvm/llvm-bugzilla-archive#5082 llvm/llvm-bugzilla-archive#5089 llvm/llvm-bugzilla-archive#5108 llvm/llvm-bugzilla-archive#5118 llvm/llvm-bugzilla-archive#5128 llvm/llvm-bugzilla-archive#5130 llvm/llvm-bugzilla-archive#5197 llvm/llvm-bugzilla-archive#5221 llvm/llvm-bugzilla-archive#5250 llvm/llvm-bugzilla-archive#5255 llvm/llvm-bugzilla-archive#5392 llvm/llvm-bugzilla-archive#5408 llvm/llvm-bugzilla-archive#5422 llvm/llvm-bugzilla-archive#5460 llvm/llvm-bugzilla-archive#5484 llvm/llvm-bugzilla-archive#5526 llvm/llvm-bugzilla-archive#5709 llvm/llvm-bugzilla-archive#5744 llvm/llvm-bugzilla-archive#5817 | | CC | @asl,@DimitryAndric,@efriedma-quic,@pwo |

    Extended Description

    I'm creating this bug report, so we can keep track of all the reports that need to be resolved before we can fully compile FreeBSD with Clang.

    clang:codegen bugzilla 
    opened by EdSchouten 99
  • [meta] 10.0.0 Release Blockers

    [meta] 10.0.0 Release Blockers

    | | | | --- | --- | | Bugzilla Link | 44555 | | Resolution | FIXED | | Resolved on | Mar 30, 2020 07:27 | | Version | 10.0 | | OS | All | | Depends On | llvm/llvm-project#43753 llvm/llvm-project#44210 llvm/llvm-project#44527 llvm/llvm-project#31551 llvm/llvm-project#33828 llvm/llvm-project#38761 llvm/llvm-project#39022 llvm/llvm-project#41538 llvm/llvm-project#42056 llvm/llvm-project#42492 llvm/llvm-project#42791 llvm/llvm-project#43524 llvm/llvm-project#43541 llvm/llvm-project#43574 llvm/llvm-project#43756 llvm/llvm-project#43833 llvm/llvm-project#43884 llvm/llvm-project#43886 llvm/llvm-bugzilla-archive#44552 llvm/llvm-project#43901 llvm/llvm-project#43904 llvm/llvm-project#43908 llvm/llvm-project#43909 llvm/llvm-project#43913 llvm/llvm-project#43914 llvm/llvm-project#43921 llvm/llvm-project#43934 llvm/llvm-project#43940 llvm/llvm-project#43945 llvm/llvm-project#43957 llvm/llvm-project#43963 llvm/llvm-project#43968 llvm/llvm-project#43976 llvm/llvm-project#43978 llvm/llvm-project#43979 llvm/llvm-project#43985 llvm/llvm-project#43997 llvm/llvm-project#43999 llvm/llvm-project#44027 llvm/llvm-project#44041 llvm/llvm-project#44042 llvm/llvm-project#44045 llvm/llvm-project#44046 llvm/llvm-project#44047 llvm/llvm-project#44050 llvm/llvm-project#44054 llvm/llvm-project#44055 llvm/llvm-project#44058 llvm/llvm-project#44059 llvm/llvm-project#44060 llvm/llvm-project#44064 llvm/llvm-project#44065 llvm/llvm-project#44067 llvm/llvm-project#44075 llvm/llvm-project#44078 llvm/llvm-project#44090 llvm/llvm-project#44091 llvm/llvm-project#44108 llvm/llvm-project#44109 llvm/llvm-project#44112 llvm/llvm-project#44125 llvm/llvm-project#44127 llvm/llvm-project#44129 llvm/llvm-project#44132 llvm/llvm-project#44136 llvm/llvm-project#44137 llvm/llvm-project#44139 llvm/llvm-project#44147 llvm/llvm-project#44153 llvm/llvm-project#44157 llvm/llvm-project#44158 llvm/llvm-project#44159 llvm/llvm-project#44161 llvm/llvm-project#44168 llvm/llvm-project#44173 llvm/llvm-project#44180 llvm/llvm-project#44194 llvm/llvm-project#44197 llvm/llvm-project#44208 llvm/llvm-project#44222 llvm/llvm-project#44227 llvm/llvm-project#44231 llvm/llvm-project#44234 llvm/llvm-project#44235 llvm/llvm-project#44241 llvm/llvm-project#44250 llvm/llvm-project#44251 llvm/llvm-project#44252 llvm/llvm-project#44266 llvm/llvm-project#44268 llvm/llvm-project#44274 llvm/llvm-project#44284 llvm/llvm-project#44290 llvm/llvm-project#44295 llvm/llvm-project#44298 llvm/llvm-project#44300 llvm/llvm-project#44335 llvm/llvm-project#44341 llvm/llvm-project#44346 llvm/llvm-project#44355 llvm/llvm-project#44378 llvm/llvm-project#44379 llvm/llvm-project#44428 llvm/llvm-project#44447 llvm/llvm-project#44469 llvm/llvm-project#44509 llvm/llvm-project#44551 llvm/llvm-project#44563 llvm/llvm-project#44596 llvm/llvm-project#44615 | | CC | @JonasToth,@DimitryAndric,@JVApen,@kadircet,@LebedevRI,@lhames,@RKSimon,@Meinersbur,@slacka,@pogo59,@pavelkryukov,@pawelsopensource,@jprotze,@seanm,@sylvestre,@xingxue-ibm,@yonghong-song |

    Extended Description

    Rather than adding comments, please file bugs and mark them as blocking this one.

    The 10.0.0 release branch was created at e26a78e70857273c83aaacd4aa0edb36effe70e3

    bugzilla 
    opened by zmodem 97
  • XFAIL/cleanup failing tests in GDB 7.5 suite/buildbot

    XFAIL/cleanup failing tests in GDB 7.5 suite/buildbot

    | | | | --- | --- | | Bugzilla Link | 14395 | | Resolution | FIXED | | Resolved on | Sep 16, 2014 11:45 | | Version | trunk | | OS | Linux | | Depends On | llvm/llvm-bugzilla-archive#14553 llvm/llvm-bugzilla-archive#14563 llvm/llvm-bugzilla-archive#14605 llvm/llvm-bugzilla-archive#14569 llvm/llvm-bugzilla-archive#14767 | | Blocks | llvm/llvm-project#14702 | | CC | @echristo |

    Extended Description

    Tracking cleanup work to baseline the GDB 7.5 test suite by xfailing & otherwise fixing up the tests.

    (during & after this is resolved I'll be going back over the xfails & filing bugs for them)

    clang bugzilla googler 
    opened by dwblaikie 95
  • [Meta] 3.9.1 Merges and Bug Fixes

    [Meta] 3.9.1 Merges and Bug Fixes

    | | | | --- | --- | | Bugzilla Link | 30261 | | Version | 3.9 | | OS | All | | Depends On | llvm/llvm-project#30036 llvm/llvm-project#30668 llvm/llvm-project#29457 llvm/llvm-project#29644 llvm/llvm-project#29645 llvm/llvm-project#29646 llvm/llvm-project#29648 llvm/llvm-project#29649 llvm/llvm-project#29655 llvm/llvm-project#29700 llvm/llvm-project#29717 llvm/llvm-project#29741 llvm/llvm-project#29769 llvm/llvm-project#29811 llvm/llvm-project#29843 llvm/llvm-project#29903 llvm/llvm-project#29944 llvm/llvm-project#29947 llvm/llvm-project#30072 llvm/llvm-project#30073 llvm/llvm-project#30182 llvm/llvm-project#30187 llvm/llvm-project#30188 llvm/llvm-project#30198 llvm/llvm-project#30199 llvm/llvm-project#30200 llvm/llvm-project#30201 llvm/llvm-project#30203 llvm/llvm-project#30204 llvm/llvm-project#30212 llvm/llvm-project#30219 llvm/llvm-project#30220 llvm/llvm-project#30221 llvm/llvm-project#30222 llvm/llvm-project#30223 llvm/llvm-project#30224 llvm/llvm-project#30227 llvm/llvm-project#30229 llvm/llvm-project#30230 llvm/llvm-project#30231 llvm/llvm-project#30232 llvm/llvm-project#30317 llvm/llvm-project#30318 llvm/llvm-project#30319 llvm/llvm-project#30320 llvm/llvm-project#30327 llvm/llvm-project#30359 llvm/llvm-project#30371 llvm/llvm-project#30374 llvm/llvm-project#30383 llvm/llvm-project#30407 llvm/llvm-project#30420 llvm/llvm-project#30421 llvm/llvm-project#30431 llvm/llvm-project#30434 llvm/llvm-project#30435 llvm/llvm-project#30445 llvm/llvm-project#30450 llvm/llvm-project#30461 llvm/llvm-project#30468 llvm/llvm-project#30487 llvm/llvm-project#30488 llvm/llvm-project#30508 llvm/llvm-project#30522 llvm/llvm-project#30543 llvm/llvm-project#30552 llvm/llvm-project#30586 llvm/llvm-project#30620 llvm/llvm-project#30624 | | Reporter | LLVM Bugzilla Contributor | | CC | @DimitryAndric,@EdSchouten,@emaste,@gnzlbg,@hfinkel,@mclow,@pogo59,@rengolin,@sylvestre |

    Extended Description

    This patch is meant to track bug fixes and other patches that we want to merge into 3.9.1.

    bugzilla 
    opened by llvmbot 94
  • [META] Compiling Firefox with clang

    [META] Compiling Firefox with clang

    | | | | --- | --- | | Bugzilla Link | 5511 | | Resolution | FIXED | | Resolved on | Sep 28, 2010 20:57 | | Version | unspecified | | OS | Linux | | Depends On | llvm/llvm-project#4305 llvm/llvm-project#4434 llvm/llvm-project#5805 llvm/llvm-project#5827 llvm/llvm-project#5878 llvm/llvm-bugzilla-archive#5512 llvm/llvm-bugzilla-archive#5513 llvm/llvm-bugzilla-archive#5514 llvm/llvm-bugzilla-archive#5515 llvm/llvm-bugzilla-archive#5516 llvm/llvm-bugzilla-archive#5517 llvm/llvm-bugzilla-archive#5518 llvm/llvm-bugzilla-archive#5519 llvm/llvm-bugzilla-archive#5520 llvm/llvm-bugzilla-archive#5521 llvm/llvm-bugzilla-archive#5522 llvm/llvm-bugzilla-archive#5523 llvm/llvm-bugzilla-archive#5524 llvm/llvm-bugzilla-archive#5529 llvm/llvm-bugzilla-archive#5543 llvm/llvm-bugzilla-archive#5545 llvm/llvm-bugzilla-archive#5546 llvm/llvm-bugzilla-archive#5547 llvm/llvm-bugzilla-archive#5548 llvm/llvm-bugzilla-archive#5549 llvm/llvm-bugzilla-archive#5550 llvm/llvm-bugzilla-archive#5557 llvm/llvm-bugzilla-archive#5621 llvm/llvm-bugzilla-archive#5705 llvm/llvm-bugzilla-archive#5709 llvm/llvm-bugzilla-archive#5710 llvm/llvm-bugzilla-archive#5711 llvm/llvm-bugzilla-archive#5728 llvm/llvm-bugzilla-archive#5756 llvm/llvm-bugzilla-archive#5890 llvm/llvm-bugzilla-archive#6133 llvm/llvm-bugzilla-archive#6186 llvm/llvm-bugzilla-archive#6193 llvm/llvm-bugzilla-archive#6274 llvm/llvm-bugzilla-archive#6294 llvm/llvm-bugzilla-archive#6536 llvm/llvm-bugzilla-archive#6762 llvm/llvm-bugzilla-archive#7199 llvm/llvm-bugzilla-archive#7230 llvm/llvm-bugzilla-archive#7239 llvm/llvm-bugzilla-archive#7243 llvm/llvm-bugzilla-archive#7405 llvm/llvm-bugzilla-archive#7415 llvm/llvm-bugzilla-archive#7557 llvm/llvm-bugzilla-archive#7753 llvm/llvm-bugzilla-archive#7773 | | CC | @dbaron,@DougGregor,@jlebar,@liblit,@pwo,@regehr,@rjmccall |

    Extended Description

    Firefox has a relatively straightforward C++ codebase that largely parses with clang++. This bug organizes various issues with semantic analysis and code generation that have come up.

    I have about 20 bugs to file so far, so the dependency list is going to be getting longer pretty quickly.

    c++ bugzilla 
    opened by efriedma-quic 92
  • Need to add product version numbers

    Need to add product version numbers

    | | | | --- | --- | | Bugzilla Link | 1 | | Resolution | FIXED | | Resolved on | Feb 22, 2010 12:40 | | Version | unspecified | | OS | Linux | | Reporter | LLVM Bugzilla Contributor |

    Extended Description

    Add versions "1.0" and "trunk" to all our supported products. Remove the "unspecified" version as it is of no use to us.

    bugzilla 
    opened by llvmbot 86
  • instcombine generating incorrect range metadata for a ctpop

    instcombine generating incorrect range metadata for a ctpop

    instcombine takes this code:

    define i32 @f(i32 %0) {
      %2 = lshr i32 2048, %0
      %3 = call i32 @llvm.ctpop.i32(i32 %2)
      %4 = freeze i32 %3
      ret i32 %4
    }
    
    ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
    declare i32 @llvm.ctpop.i32(i32) #0
    

    and turns it into:

    define i32 @f(i32 %0) {
      %2 = lshr i32 2048, %0
      %.fr = freeze i32 %2
      %3 = call i32 @llvm.ctpop.i32(i32 %.fr), !range !0
      ret i32 %3
    }
    
    ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
    declare i32 @llvm.ctpop.i32(i32) #0
    
    attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
    
    !0 = !{i32 0, i32 13}
    

    but the inferred 0..13 range is too tight. to see this, consider that (in the original code) %2 can easily be poison, this happens when %0 is uge 32. then, ctpop(poison) gives poison, and freezing it results in an arbitrary 32-bit value.

    cc @nunoplopes

    miscompilation llvm:optimizations llvm:instcombine 
    opened by regehr 6
  • correlated value propagation misoptimizing @llvm.abs.i1

    correlated value propagation misoptimizing @llvm.abs.i1

    when this function is invoked as f(1,1) the abs call returns 1 and then we select the true branch so the return value must be 1:

    define i1 @f(i1 %0, i1 %1) {
      %3 = call i1 @llvm.abs.i1(i1 %0, i1 false)
      %4 = select i1 %1, i1 %3, i1 false
      ret i1 %4
    }
    
    declare i1 @llvm.abs.i1(i1, i1 immarg) #0
    
    attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
    

    however, CVP is incorrectly transforming it to return a constant 0:

    https://alive2.llvm.org/ce/z/s5vlDP

    cc @nunoplopes

    miscompilation llvm:optimizations 
    opened by regehr 1
  • Missing prebuilt assets for LLVM 12.0.1 releases

    Missing prebuilt assets for LLVM 12.0.1 releases

    Hi,

    I am looking to leverage prebuilt assets for LLVM releases and I noticed that some are missing for LLVM 12.0.1. I am interested in particular on the following ones:

    • win64
    • x86_64-linux-gnu-ubuntu-16.04 / x86_64-linux-gnu-ubuntu-18.04
    • x86_64-apple-darwin / arm64-apple-darwin

    I am willing to help to build some of those myself and add them to the assets list, is the process of doing so documented somewhere ?

    packaging 
    opened by theblackunknown 1
  • Clang misses obfuscated `and`-`or` function optimization, where GCC is able to

    Clang misses obfuscated `and`-`or` function optimization, where GCC is able to

    bool func1(bool a, bool b, bool c) {
        return !((!a & !b & !c) | (!a & b & !c) | (a & !b & !c));
    }
    
    bool func2(bool a, bool b, bool c) {
        return !((!a && !b && !c) || (!a && b && !c) || (a && !b && !c));
    }
    

    func1 uses bitwise and and or func2 uses conditional and and or Both returning a and b or c. Given these 2 functions, this is what x86-64 clang (trunk) -O3 generated:

    func1(bool, bool, bool):                            # @func1(bool, bool, bool)
            mov     eax, edi
            or      al, dl
            mov     ecx, eax
            or      cl, sil
            not     cl
            not     al
            and     al, sil
            or      al, cl
            or      sil, dl
            not     sil
            and     sil, dil
            or      al, sil
            not     al
            and     al, 1
            ret
    
    func2(bool, bool, bool):                            # @func2(bool, bool, bool)
            mov     eax, edi
            test    edi, edi
            jne     .LBB1_4
            test    sil, sil
            jne     .LBB1_4
            test    dl, dl
            jne     .LBB1_4
            xor     eax, eax
            ret
    .LBB1_4:
            xor     al, sil
            xor     al, 1
            or      al, dl
            ret
    

    For both functions, it is not able to see through the function as a and b or c. However, x86-64 GCC (trunk) -O3 is able to for func1, as shown below:

    func1(bool, bool, bool):
            and     esi, edi
            mov     eax, esi
            or      eax, edx
            ret
    
    func2(bool, bool, bool):
            mov     eax, edx
            test    dil, dil
            jne     .L8
            test    sil, sil
            jne     .L8
    .L4:
            ret
    .L8:
            cmp     sil, 1
            jne     .L9
            test    dil, dil
            je      .L4
    .L9:
            xor     edi, 1
            or      dil, sil
            cmovne  eax, edi
            ret
    

    (all test are done via godbolt) Thanks.

    llvm:optimizations 
    opened by Rageking8 1
  • [flang] BIND(C) character argument

    [flang] BIND(C) character argument

    Fortran 2018 18.3.5 (2) point 4: character argument with VALUE attribute. Fortran 2018 18.3.5 (2) point 5: character argument without VALUE attribute. Fortran 2018 18.3.5 (2) point 6: character argument with POINTER/ALLOCATABLE attribute.

    Please check the discussions in https://reviews.llvm.org/D137254 for more details.

    The standard mandates to use a CFI descriptor for assumed-length/deferred length. For BIND(C) scalar assumed length with a Fortran caller and callee, a CFI descriptor (fir.box) is not used as it should for now.

    Semantic checks to be done:

    1. BIND(C) character argument must have length one if the argument has the VALUE attribute.
    2. BIND(C) allocatable or pointer dummy argument of type CHARACTER has deferred character length.
    3. It should be allowed for "assumed-shape, assumed-rank without the CONTIGUOUS" attribute with explicit length since it is covered by the third bullet point in (5). The latest gfortran allow this (e.g character(10) :: c2(:)) (but not scalar or explicit shape with explicit length). (quote from @jeanPerier in https://reviews.llvm.org/D137254)
    flang 
    opened by PeixinQiao 0
Releases(llvmorg-15.0.6)
Owner
LLVM
This is the LLVM organization on GitHub for the LLVM Project: a collection of modular and reusable compiler and toolchain technologies.
LLVM
JuCC - Jadavpur University Compiler Compiler

JuCC This is the official Jadavpur University Compiler Compiler repository. Key Features Supports a subset of the C language for now. Custom grammar f

Shuvayan Ghosh Dastidar 36 Sep 1, 2022
Compiler Design Project: Simulation of front-end phase of C Compiler involving switch-case construct.

CSPC41 Compiler Design Project Assignment Compiler Design Project: Simulation of front-end phase of C Compiler involving switch-case construct. Using

Adeep Hande 1 Dec 15, 2021
Pre-configured LLVM and ANTLR4 for C++

LLVM + ANTLR4 Starter Project Starter project for ANTLR4 and LLVM C++ project. Prerequisite LLVM 12 Java (for ANTLR4) git Install prerequisite librari

Nathanael Demacon 12 Aug 9, 2022
A Small C Compiler

8cc C Compiler Note: 8cc is no longer an active project. The successor is chibicc. 8cc is a compiler for the C programming language. It's intended to

Rui Ueyama 5.8k Jan 8, 2023
GNU Prolog is a native Prolog compiler

GNU Prolog is a native Prolog compiler with constraint solving over finite domains (FD)

Daniel Diaz 64 Dec 13, 2022
Take your first step in writing a compiler.

first-step Take your first step in writing a compiler. Building from Source Before building first-step, please make sure you have installed the follow

PKU Compiler Course 28 Aug 20, 2022
NCC is an ANSI/ISO-compliant optimizing C compiler.

The compiler is retargetable by design, but, at present, it only produces binaries for Linux/x86_64. As the compiler ABI differs somewhat from the System V ABI used by Linux, its code cannot be linked against Linux system libraries. It does, however, provide its own (incomplete) standard ANSI/Posix C library.

Charles E. Youse 0 Apr 1, 2022
nanoc is a tiny subset of C and a tiny compiler that targets 32-bit x86 machines.

nanoc is a tiny subset of C and a tiny compiler that targets 32-bit x86 machines. Tiny? The only types are: int (32-bit signed integer) char (8-

Ajay Tatachar 19 Nov 28, 2022
Smaller C is a simple and small single-pass C compiler

Smaller C is a simple and small single-pass C compiler, currently supporting most of the C language common between C89/ANSI C and C99 (minus some C89 and plus some C99 features).

Alexey Frunze 1.2k Jan 7, 2023
Microvm is a virtual machine and compiler

The aim of this project is to create a stack based language and virtual machine for microcontrollers. A mix of approaches is used. Separate memory is used for program and variable space (Harvard architecture). An interpreter, virtual machine and compiler are available. A demostration of the interpreter in action is presented below.

null 10 Aug 14, 2022
yadcc - Yet Another Distributed C++ Compiler

Yet Another Distributed C++ Compiler. yadcc是一套腾讯广告自研的分布式编译系统,用于支撑腾讯广告的日常开发及流水线。相对于已有的同类解决方案,我们针对实际的工业生产环境做了性能、可靠性、易用性等方面优化。

Tencent 276 Dec 29, 2022
Aheui JIT compiler for PC and web

아희짓 개요 아희짓은 아희 언어를 위한 JIT (Just in Time) 컴파일러입니다. 어셈블러와 유틸 라이브러리외에 외부 라이브러리에 전혀 의존하지 않고 JIT을 바닥부터 구현합니다. 지원 환경 64비트 windows, mac, linux (x86 아키텍쳐) 웹어셈

Sunho Kim 28 Sep 23, 2022
C implementation of the Tiny BASIC compiler found in an article by Dr. Austin Henley

Teeny Tiny Basic A C implementation of the Tiny BASIC compiler found in this article and this github repo by Dr. Austin Henley. I did pretty well in A

Gavin Morris 7 Oct 4, 2022
bcc is an interactive compiler of a language called b.

bcc is an interactive compiler of a language called b.

kparc 18 Nov 7, 2022
This is a compiler written from scratch in C

C Compiler This is a compiler written from scratch in C, with fully supporting C18 as a goal. It can currently compile itself, and most simple program

null 29 Jan 6, 2023
mrcceppc is a reimplementation project for the Metrowerks mwcceppc compiler.

Compiler | mrcceppc mrcceppc is a reimplementation project for the Metrowerks mwcceppc compiler. Compiling Run generate_{version}.bat for which versio

null 9 Nov 21, 2022
A C header that allow users to compile brainfuck programs within a C compiler.

brainfuck.h A C header that allow users to compile brainfuck programs within a C compiler. You can insert the header into the top of your brainfuck so

null 1 Dec 30, 2022
Gilbraltar is a version of the OCaml compiler to be able to build a MirageOS for RaspberryPi 4.

Gilbraltar is a version of the OCaml compiler to be able to build a MirageOS for RaspberryPi 4. It's a work in progress repository to provide a dune's toolchain (as ocaml-freestanding) specialized for Raspberry Pi 4.

Calascibetta Romain 49 Oct 30, 2022
NaiveCC: a compiler frontend for a subset of C

NaiveCC: a compiler frontend for a subset of C This is a toy compiler frontend for a subset of the C programming language based on the LR(1) parsing t

Yuxiang Wei 1 Nov 15, 2021