This repo contains LLILC, an LLVM based compiler for .NET Core. It includes a set of cross-platform .NET code generation tools that enables compilation of MSIL byte code to LLVM supported platforms.
Перейти к файлу
Bengu Li 34df455822 Major change of runtest and checkdiff
This is a major change to runtest and checkdiff.

First, it is changed to user pre-created baseline. Instead of
huge LLVM IR baseline stored in GitHub that caused issues.

Second, summary comparison is introduced. With one line
per method, the runtest and checkdiff process is much more
swift with summary only than previous approach. No dump
runtest is also provided. Verbose dump functionality is still
there. A normalization speed improvement is expected after
this change.

Third, LLVM IR dump level is introduced into LLILCJit.
Right now it read env var directly. It will be updated
when CLR Config is supported in LLILCJit.

A GitHub wiki page is created to illustrate the usage.
https://github.com/dotnet/llilc/wiki/Dev-Env-and-Test-Harness

Below are Typical use cases:

Developer Usage
1.Update your master to latest master
2.Build your baseline JIT: BuildAll or Build
3.Create a summary baseline: RunTest -Jit baseline-jit -Result SummaryBase -Dump Summary
4.Create a verbose baseline: RunTest -Jit baseline-jit -Result VerboseBase -Dump Verbose
5.Create your own branch
6.Do the new development or fix issues
7.Build your new JIT: Build
8.RunTest -Jit new-jit
  If failed with overall pass/failure and no dump, back to step 6 for fixing.
9.RunTest -Jit new-jit -Result SummaryDiff -Dump Summary
10.CheckDiff -Base SummaryBase -Diff SummaryDiff -Summary -UseDiffTool
  If failed with summary, find out which method is a new failure, back to step 6 for fixing.
11.RunTest -Jit new-jit -Result VerboseDiff -Dump Verbose
12.CheckDiff -Base VerboseBase -Diff VerboseDiff -UseDiffTool
  If any LLVM IR diff is not benign, back to step 6 for fixing.
13.Ready for a pull request.

Lab PR Usage
RunTest
Lab PR usage is most simplified version. It only checks for overall pass/fail and does not keep any result.

Lab Nightly Usage
1.RunTest -Jit last-known-good-jit -Result SummaryBase -Dump Summary
  or a summary result of running last-know-good-jit is kept in SummaryBase
2.RunTest -Jit latest-jit -Result SummaryDiff -Dump Summary
3.CheckDiff -Base SummaryBase -Diff SummaryDiff -Summary
4.If CheckDiff result is zero, mark latest-jit as last-known-good-jit. Result SummaryDiff could be kept as SummaryBase.
5.If CheckDiff result is not zero, send out failure notice to branch owner. Branch owner should analyze the case and bring relevant developer for fixing.
2015-03-17 21:47:03 -07:00
Documentation Implement explicit null checks for loads/stores 2015-03-06 19:17:41 -08:00
include Major change of runtest and checkdiff 2015-03-17 21:47:03 -07:00
lib Major change of runtest and checkdiff 2015-03-17 21:47:03 -07:00
test Major change of runtest and checkdiff 2015-03-17 21:47:03 -07:00
tools Fix typo in Driver readme 2015-02-19 14:35:44 -08:00
utils Make ccformat --formatall compatible with Python 3 2015-03-11 16:26:43 -07:00
.clang-format Reformat sources to be LLVM convention compliant 2015-03-11 13:02:04 -07:00
.gitattributes Initial commit 2015-02-12 14:54:02 -08:00
.gitignore Initial commit 2015-02-12 14:54:02 -08:00
CMakeLists.txt Fix LLVM BUILD path issue in LLILC CMakefile 2015-03-05 15:16:07 -08:00
LICENSE.TXT Initial commit 2015-02-12 14:54:02 -08:00
README.md Link to the Getting Started pages from README.md. 2015-02-23 14:33:44 -08:00

README.md

Welcome to LLILC

Build Status

Windows Linux
Debug Build status Build Status
Release Build status Build Status

Introduction

LLILC is an LLVM based MSIL Compiler - we pronounce it 'lilac' - with a goal of producing a set of cross-platform .NET code generation tools. Today LLILC is being developed against dotnet/CoreCLR for use as a JIT, but an ahead of time (AOT) compiler is planned for the future.

See the wiki for more information. It has a more complete discussion of our background and goals as well as "getting started" details and developer information.

Supported Platforms

Our initial supported platform is Windows, but Linux and Mac OSX support are under development.

Contributions

LLILC is just starting up. Only a few tests are working and there are lots of places where we need help. Please see our issues or the contributing page for how to pitch in.