Apple will use LLVM

Jakub Jelinek jakub at
Thu Feb 23 16:32:08 UTC 2012

On Thu, Feb 23, 2012 at 05:26:25PM +0100, Roman Rakus wrote:
> On 02/22/2012 09:08 AM, Jakub Jelinek wrote:
> >On Wed, Feb 22, 2012 at 08:46:19AM +0100, Roman Rakus wrote:
> >>On 02/16/2012 05:33 PM, Jakub Jelinek wrote:
> >>>For just -O3 or -O2 -ftree-vectorize we could perhaps have some knob in
> >>>the spec files to request those extra flags, for PGO it really requires
> >>>some work from the packager (but e.g. bash/grep/awk, perhaps perl/python
> >>>etc. would definitely improve, gcc itself is already built with PGO).
> >>What kind of work? I have tried to build bash with added -O2
> >>-ftree-vectorize -fprofile-generate, but the build fails with many
> >>undefined reference to `__gcov_*.
> >That would be probably because -lgcov isn't linked in.  When using
> >-fprofile-generate, you need to pass that switch not just during
> >compilation, but also when linking the binaries (or libraries) that contain
> >-fprofile-generate compiled objects.
> >
> >	Jakub
> Thanks. Anyone who wants to try/test such built bash can use my
> builds which I copied to fedorapeople [1]. It was built using mock.
> Any comments, test results are welcome.
> [1]

You are compiling with
'CPPFLAGS=-D_GNU_SOURCE -DRECYCLES_PIDS  -O2 -ftree-vectorize -fprofile-generate -fprofile-use'
That doesn't make sense.  You need to build twice.
Step 1)
  build with -fprofile-generate (other flags the same in both builds)
Step 2)
  run the program on some typical workload (make check, some large
  configure script you want to ptimize for, the closer it is to what people
  will use it for, the better)
Step 3)
  make clean the *.o file, keep around the *.gcda files step 2) generated,
  build again, this time with -fprofile-use


More information about the devel mailing list