statement-wise -f/-l options for loop separation
commitc9278c5dba6abb74f98967b6c48386cbe8b07bc8
authorUday Bondhugula <udayreddy@gmail.com>
Thu, 31 May 2012 12:08:53 +0000 (31 17:38 +0530)
committerCedric Bastoul <cedric.bastoul@u-psud.fr>
Mon, 4 Jun 2012 08:15:09 +0000 (4 10:15 +0200)
treeb78059fff9cbbd17465b719e672f82ca0a493dba
parentd61f12582a27ac5aaff885a678da98c46a6ff897
statement-wise -f/-l options for loop separation

option->f/l (-f -l command-line args) provided first and last levels
to optimize control overhead by separating / splitting loops at
a global level. This patch allows -f/-l options to be set on a
stmt-wise basis. Integer arrays options->fs, options->ls should
be allocated by the user with options->fs_ls_size set to the number of elements
(always equal to the number of statements).  For any given loop, the first and
last depths of statements under it are looked at to determine if the loop should
be separated (max across all fs' and ls' is taken). A user has to set fs
meaningfully, i.e., for eg., if two statements i & j have a fused loop and
fs[i], fs[j] specify separation for that level for stmt i but not for stmt j,
the input is ambiguous and we will in this case not separate (since a max is
taken). options->fs/ls override f/l; if fs/ls are not set or are set
inconsistently (max across ls[i] < max across fs[i]), f/l take over.

fs/ls can only be set via the library interface for now.

Signed-off-by: Uday Bondhugula <udayreddy@gmail.com>
Signed-off-by: Cedric Bastoul <cedric.bastoul@u-psud.fr>
doc/cloog.texi
include/cloog/options.h
source/loop.c
source/options.c