On Fri, Nov 08, 2013 at 06:26:53PM +0400, Andrey Turetskiy wrote: > Thanks. > And a few questions about compiler options: > 1) You've mentioned two options for offloading: > -foffload-target=<set of targets> - to specify targets for offloading > -foffload-target-<target name>=<set of options> - to specify > compiler options for different targets > Do we really need two options to set up offloading? > What do you think about, in my opinion, more compact way: > -foffload-<target name> - if I want to offload for 'target name', > but I don't want to specify any options > -foffload-<target-name>=<set of options> - enable offloading for > 'target name' and set options > And compilation for several targets would look like: > gcc -fopenmp -foffload-mic="-O3 -msse -m64" -foffload-ptx > -foffload-hsail="-O2 -m32" file.c
I don't think it is a good idea to include the target name before = in the name of the option, but perhaps you can use two =s: -foffloat-target=x86_64-k1om-linux="-O2 -mtune=foobar' -foffloat-target=ptx-none > 2) If user doesn't specify target options directly, is target > compilation done without any option or compiler uses those host > options which are suitable for target? I think I've said that earlier, non-target specific options from original compilation should be copied over, target specific options discarded, and the command line supplied overrides appended to that. > 3) Am I understand right, that options for different targets should be > stored in different sections in fat object file, and than lto frontend > should read theese options and run target compilation with them? No, I'd store in the LTO target IL only the original host compilation options that weren't target specific (opt* has some flags what is target specific and what is not), so say -O2 -ftree-vrp would go there, but say -march=corei7-avx would not. And the -foffload-target= options would only matter during linking. Jakub