descriptionnone
ownerskimo-pet@kotnet.org
last changeSat, 10 Feb 2024 11:37:48 +0000 (10 12:37 +0100)
content tags
add:
README
Requirements:

- pkg-config (http://www.freedesktop.org/wiki/Software/pkg-config)
	(not needed when compiling a release using the included isl)
- gmp (http://gmplib.org/)
- libyaml (http://pyyaml.org/wiki/LibYAML)
	(only needed if you want to compile the pet executable)
- LLVM/clang libraries, 3.5 or higher (http://clang.llvm.org/get_started.html)
	Unless you have some other reasons for wanting to use the git version,
	it's best to install the latest release (16.0).
	The git 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
	from source, make sure you also install LLVM
	(through "make install").  You may want to specify an installation
	directory using the CMAKE_INSTALL_PREFIX cmake option.
	You may also want to set the LLVM_BUILD_LLVM_DYLIB option
	to enable the creation of a single shared library.

	If you configure older versions of 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.
	You may also need to install the llvm package for llvm-config.

Preparing:

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

	git clone git://repo.or.cz/pet.git
	cd pet
	./get_submodules.sh
	./autogen.sh

Compilation:

	./configure
	make
	make check

Use:

The main entry points are pet_scop_extract_from_C_source and
pet_transform_C_source.
The first 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

and

    #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.

The second function (pet_transform_C_source) iterates over all scops.

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.

An example application is given by pet_loopback.c,
which prints out code from the pet_scop without any transformation.


New releases are announced on http://groups.google.com/group/isl-announce

If you use pet, you can let me know by stacking
https://www.openhub.net/p/libpet on ohloh.

For bug reports, feature requests and questions,
contact isl-development@googlegroups.com

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

@InProceedings{Verdoolaege2012pet,
    author = {Sven Verdoolaege and Tobias Grosser},
    title = {Polyhedral Extraction Tool},
    booktitle = {Second Int. Workshop on Polyhedral Compilation Techniques
		(IMPACT'12)},
    address = {Paris, France},
    month = jan,
    year = {2012}
}
shortlog
2024-02-10 Sven Verdoolaegelink against isl libraries firstmaster
2023-08-06 Sven Verdoolaegepet_stmt_build_ast_exprs: handle some nested operations...
2023-08-05 Sven Verdoolaegeprint.c: rename pet_expr_build_ast_expr to pet_expr_acc...
2023-08-05 Sven Verdoolaegeallow extraction of function summary to fail
2023-08-05 Sven Verdoolaegeintroduce PetScan::no_summary
2023-08-05 Sven VerdoolaegePetScan::get_summary: extract out PetScan::cache_summary
2023-08-05 Sven VerdoolaegePetScan::get_summary: extract out PetScan::get_summary_...
2023-08-05 Sven VerdoolaegePetScan::summary_cache: fix typo in comment
2023-04-02 Sven Verdoolaegepet 0.11.7pet-0.11.7
2023-04-01 Sven VerdoolaegeREADME: update supported versions of clang
2023-04-01 Sven Verdoolaegeupdate isl to version 0.26
2023-04-01 Sven Verdoolaegewhen linking against libclang-cpp, check linking of...
2023-04-01 Sven Verdoolaegem4/ax_detect_clang.m4: preserve clang specific CPPFLAGS...
2023-04-01 Sven Verdoolaegeperform library check using C++ compiler
2023-04-01 Sven Verdoolaegealways let libtool add clang library search path to...
2023-04-01 Sven Verdoolaegeupdate isl for better linking of libclang-cpp
...
tags
12 months ago pet-0.11.7 pet 0.11.7
21 months ago pet-0.11.6 pet 0.11.6
2 years ago pet-0.11.5 pet 0.11.5
3 years ago pet-0.11.4 pet 0.11.4
4 years ago pet-0.11.3 pet 0.11.3
5 years ago pet-0.11.2 pet 0.11.2
5 years ago pet-0.11.1 pet 0.11.1
6 years ago pet-0.11 pet 0.11
6 years ago consecutivity_CW_709
7 years ago pet-0.10 pet 0.10
7 years ago pet-0.09 pet 0.09
8 years ago pet-0.08 pet 0.08
8 years ago pet-0.07 pet 0.07
9 years ago pet-0.06 pet 0.06
10 years ago pet-0.05 pet 0.05
10 years ago pet-0.04 pet 0.04
...
heads
2 months ago master
2 years ago consecutivity