Python Shell C M4 Makefile CMake
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
|pencil-headers @ 9dde94c|
|ppcg @ 9eb3567|
|prl @ ada668c|
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