last changeTue, 10 Nov 2015 11:05:22 +0000 (10 12:05 +0100)
content tags

- pkg-config (
	(not needed when compiling a release using the included isl)
- gmp (
- libyaml (
	(only needed if you want to compile the pet executable)
- LLVM/clang libraries, 2.9 or higher (
	Unless you have some other reasons for wanting to use the svn version,
	it's best to install the latest release (3.6).
	The svn version occasionally introduces incompatibilities.
	Nevertheless, if you encounter any such incompatibilities, please
	report them so that they can be fixed.
	However, development versions from before the latest release
	are not supported.

	Also, if you are following the instructions on how to build
	the svn version, make sure you also install LLVM
	(through "make install").  You may want to specify an installation
	directory using the --prefix configure option.

	If you configure LLVM using cmake, you may end up with clang libraries
	that have been compiled with -fno-rtti without this option appearing
	in the output of "llvm-config --cxxflags".  You may then run into
	errors about undefined reference to the 'typeinfo' of some classes.
	You will then have to add this option manually to CXXFLAGS while
	configuring pet.

	If you want to use the ubuntu package libclang-dev, then you need
	version 3.2 (ubuntu raring) or later.
	Older versions of this package did not include the required libraries.


Grab the latest release and extract it or get the source from
the git repository as follows.  This process requires autoconf,
automake and libtool.

	git clone git://
	cd pet
	git submodule init
	git submodule update


	make check


The main entry point is pet_scop_extract_from_C_source.
This function extracts a scop from the C source file with the given name
and returns it as a pet_scop.  The scop corresponds to the piece
of code delimited by

    #pragma scop


    #pragma endscop

The code in between needs to consist only of expression statements,
if statements and for statements.  All access relations and loop initializations
need to be piecewise quasi-affine.  Conditions are allowed to be non-affine,
in which case a separate statement is constructed to evaluate the condition.

If the autodetect option has been set, pet will try to automatically
detect a scop and no pragmas are required.  On the other hand, pet
will not produce any warnings in this case as any code that does not
satisfy the requirements is considered to lie outside of the scop.

The layout of pet_scop is documented in include/pet.h.

New releases are announced on

If you use pet, you can let me know by stacking on ohloh.

For bug reports, feature requests and questions,

If you use pet for your research, you are invited to cite
the following paper.

    author = {Sven Verdoolaege and Tobias Grosser},
    title = {Polyhedral Extraction Tool},
    booktitle = {Second Int. Workshop on Polyhedral Compilation Techniques
    address = {Paris, France},
    month = jan,
    year = {2012}
2015-11-10 Sven Verdoolaegesupport inlining of outermost call expressionsmaster
2015-11-10 Sven Verdoolaegeextract out PetScan::extract_expr_stmt
2015-11-10 Sven VerdoolaegePetScan::extract_argument: extract out extract_addr_of_arg
2015-11-10 Sven Verdoolaegeextract out pet_clang_find_function_decl_with_body
2015-11-10 Sven Verdoolaegeadd PetScan::add_new_used_names
2015-11-10 Sven Verdoolaegeadd PetScan::collect_declared_names
2015-11-10 Sven Verdoolaegeadd pet_inliner
2015-11-10 Sven Verdoolaegeadd pet_id_arg_from_type
2015-11-06 Sven Verdoolaegeextract out pet_id_get_array_type
2015-11-06 Sven Verdoolaegemove pet_clang_get_type_size to
2015-11-06 Sven Verdoolaegeif the same name is used for several variables, then...
2015-11-06 Sven VerdoolaegePetScan::extract_index_expr: extract out pet_id_create_...
2015-11-06 Sven Verdoolaegeadd pet_id_from_name_and_decl
2015-11-06 Sven VerdoolaegePetScan: keep track of declared variables in a compound...
2015-11-06 Sven VerdoolaegePetScan: keep track of DeclContext of function containi...
2015-11-02 Sven Verdoolaegeadd pet_substituter
5 months ago pet-0.07 pet 0.07
13 months ago pet-0.06 pet 0.06
19 months ago pet-0.05 pet 0.05
2 years ago pet-0.04 pet 0.04
2 years ago pet-0.03 pet 0.03
3 years ago pet-0.02 pet 0.02
3 years ago pet-0.01 pet 0.01
2 weeks ago master