Re: Instruction scheduler with respect to prefetch instructions.
> On Dec 13, 2014, at 5:22 AM, Ajit Kumar Agarwal > wrote: > > Hello All: > > Since the prefetch instruction have no direct consumers in the code stream, > they provide considerable freedom to the > Instruction scheduler. They are typically assigned lower priorities than most > of the instructions in the code stream. > This tends to cause all the prefetch instructions to be placed together in > the final schedule. This causes the performance > Degradations by placing them in clumps rather than evenly spreading the > prefetch instructions. > > The evenly spreading the prefetch instruction gives better speed up ratios as > compared to be placing in clumps for dirty > Misses. I can believe that’s true for some processors; is it true for all of them? I have the impression that some MIPS processors don’t mind clumped prefetches, so long as you don’t exceed the limit on total number of concurrently pending memory accesses. paul
Re: GCC 4.8.4 Status Report (2014-12-12)
On Sat, Dec 13, 2014 at 08:24:48AM -0500, David Edelsohn wrote: > Jakub, > > I would like to backport this fixincludes patch to the GCC 4.8 branch. > > https://gcc.gnu.org/ml/gcc-patches/2013-08/msg01975.html Ok. Jakub
Re: GCC 4.8.4 Status Report (2014-12-12)
Jakub, I would like to backport this fixincludes patch to the GCC 4.8 branch. https://gcc.gnu.org/ml/gcc-patches/2013-08/msg01975.html Thanks, David On Fri, Dec 12, 2014 at 7:17 PM, Jakub Jelinek wrote: > On Fri, Dec 12, 2014 at 04:51:21PM -0500, David Edelsohn wrote: >> GCC 4.8 branch has degraded from 14 libstdc++ failures to 153. This > > On which target, when it has been reported, are the libstdc++ folks aware of > that? > I see zero regressions on x86_64-linux and i686-linux from a build 14 days > ago, compared to a build from early September there is > +FAIL: g++.dg/tls/thread_local10.C -std=c++11 (test for excess errors) > +UNRESOLVED: g++.dg/tls/thread_local10.C -std=c++11 compilation failed to > produce executable > but that has been reported and is just a testsuite issue, not compiler or > library bug. > > Jakub
Re: [patch, build] Restore bootstrap in building libcc1 on darwin
On 05/12/2014 23:47, Jakub Jelinek wrote: > On Fri, Dec 05, 2014 at 11:34:28PM +0100, Dominique Dhumieres wrote: >>> As I've tried to explain, that is IMHO wrong though. >>> If what you are after is the -B stuff too, then perhaps: >>> ... >> >> Sorry but it does not work: > > Sorry, make that (just removed 4x ' in each file): > > 2014-12-05 Jakub Jelinek > > PR bootstrap/64023 > * Makefile.tpl (EXTRA_TARGET_FLAGS): Set STAGE1_LDFLAGS > to POSTSTAGE1_LDFLAGS and STAGE1_LIBS to POSTSTAGE1_LIBS. > Add -B to libstdc++-v3/src/.libs and libstdc++-v3/libsupc++/.libs > to CXX. > * Makefile.in: Regenerated. > > --- Makefile.tpl.jj 2014-11-12 09:31:59.0 +0100 > +++ Makefile.tpl 2014-12-05 21:12:21.486031062 +0100 > @@ -641,7 +641,9 @@ EXTRA_TARGET_FLAGS = \ > 'AS=$(COMPILER_AS_FOR_TARGET)' \ > 'CC=$$(CC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ > 'CFLAGS=$$(CFLAGS_FOR_TARGET)' \ > - 'CXX=$$(CXX_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ > + 'CXX=$$(CXX_FOR_TARGET) -B$$r/$$(TARGET_SUBDIR)/libstdc++-v3/src/.libs \ > + -B$$r/$$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs \ > + $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ > 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \ > 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ > 'GCJ=$$(GCJ_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ > @@ -659,6 +661,8 @@ EXTRA_TARGET_FLAGS = \ > 'WINDRES=$$(WINDRES_FOR_TARGET)' \ > 'WINDMC=$$(WINDMC_FOR_TARGET)' \ > 'XGCC_FLAGS_FOR_TARGET=$(XGCC_FLAGS_FOR_TARGET)' \ > + 'STAGE1_LDFLAGS=$$(POSTSTAGE1_LDFLAGS)' \ > + 'STAGE1_LIBS=$$(POSTSTAGE1_LIBS)' \ > "TFLAGS=$$TFLAGS" > > TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) > --- Makefile.in.jj2014-11-28 14:40:52.0 +0100 > +++ Makefile.in 2014-12-05 21:11:48.276616008 +0100 > @@ -835,7 +835,9 @@ EXTRA_TARGET_FLAGS = \ > 'AS=$(COMPILER_AS_FOR_TARGET)' \ > 'CC=$$(CC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ > 'CFLAGS=$$(CFLAGS_FOR_TARGET)' \ > - 'CXX=$$(CXX_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ > + 'CXX=$$(CXX_FOR_TARGET) -B$$r/$$(TARGET_SUBDIR)/libstdc++-v3/src/.libs \ > + -B$$r/$$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs \ > + $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ > 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \ > 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ > 'GCJ=$$(GCJ_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ > @@ -853,6 +855,8 @@ EXTRA_TARGET_FLAGS = \ > 'WINDRES=$$(WINDRES_FOR_TARGET)' \ > 'WINDMC=$$(WINDMC_FOR_TARGET)' \ > 'XGCC_FLAGS_FOR_TARGET=$(XGCC_FLAGS_FOR_TARGET)' \ > + 'STAGE1_LDFLAGS=$$(POSTSTAGE1_LDFLAGS)' \ > + 'STAGE1_LIBS=$$(POSTSTAGE1_LIBS)' \ > "TFLAGS=$$TFLAGS" > > TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) > > Jakub > If it also works for --disable-bootstrap, this is okay. Paolo
Instruction scheduler with respect to prefetch instructions.
Hello All: Since the prefetch instruction have no direct consumers in the code stream, they provide considerable freedom to the Instruction scheduler. They are typically assigned lower priorities than most of the instructions in the code stream. This tends to cause all the prefetch instructions to be placed together in the final schedule. This causes the performance Degradations by placing them in clumps rather than evenly spreading the prefetch instructions. The evenly spreading the prefetch instruction gives better speed up ratios as compared to be placing in clumps for dirty Misses. I am curious to know how the schedulers in the GCC handles the prefetch instruction and how the priorities is assigned to Prefetch instructions in the gcc schedulers so that the prefetch instruction is evenly spread. Please let me know what do you think. Thanks & Regards Ajit