Meinersbur/pencilcc
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
pencilcc
Could not load branches
Nothing to show
Could not load tags
Nothing to show
{{ refName }}
default
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code
-
Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.
- Open with GitHub Desktop
- Download ZIP
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
pencilcc ============= Driver for PENCIL compile toolchain. Requirements (might be incomplete) ---------------------------------- - C99 compiler (Tested with gcc 4.9.1) - autoconf (Tested with version 2.69) - automake (Tested with version 1.14) - libtool (Tested with version 2.4.2) - pkg-config (Tested with version 0.26) - ppcg (Bundled in ppcg submodule) - Integer Set Library (Bundled in ppcg/isl submodule) - GNU Bignum Library (Tested with version 5.1.3) - PET (bundled in ppcg/pet submodule) - Clang headers and libraries (Tested with versions 3.3-3.6) - Clang requirements (C++ compiler, headers for libedit, zlib, ...) - pencil headers (Bundled in pencil-headers submodule) - PRL (Bundled in prl submodule) - polybench (Tested with version 3.2; automatically downloaded by the get-polybench.sh script and bundled in the dist version) - Python3 (Tested with version 3.4.2) Installation ------------ ./configure make sudo make install in the pencilcc directory. See './configure --help' for options. 'make install' will install pencilcc, penciltool, ppcg, the PENCIL and PRL headers, and PRL shared library. Usage ----- pencilcc is a compiler invocation replacement. Replace your compiler call by pencilcc. Call 'pencilcc --help' for options. Every option not recognized is passed to the compiler (cc) after optimization took place. penciltool is a prefix for the main compiler invocation, like libtool. Replace a call to 'gcc <gcc_options>' by 'penciltool <ppcg_options> gcc <gcc_options>'. Files will be preprocessed by ppcg before being passed to gcc. By default *.pencil.c and *.pencil files are assumed to contain pure PENCIL code (sublanguage of C99) and every other file C99 code with embedded PENCIL (#pragma scop/#pragma endscop). pencilcc/penciltool have three configuration modes: `build`) Then executed from the build directory, it will use the files from the source-tree and build directory. I.e., installation is not necessary. `install`) Use the path configured by --prefix to find the required tools and files. Used by default when not started from the build directory. `system`) Uses no paths, but assumes that all files and tools are in the default search paths (e.g. /usr/bin, /usr/include, /usr/lib) Configuration modes can be changed explicitly using the --pencil-config command line option. Known Issues ------------ - pencilcc assumes the compiler accepts gcc command line syntax - pencilcc assumes the compiler invocation includes linking; i.e. the options -c (compile to .o) and -E (precompile) are not recognized - Some warnings are unavoidable (e.g. unkonwn attribute) - ppcg --version reports UNKNOWN for its own version Future Features --------------- - Detect -c and -E (+ others) compile modes - Honor -x switch
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Packages 0
No packages published