> On what date?
See http://gcc.gnu.org/ml/gcc-testresults/2009-09
--
Eric Botcazou
GET_PAIRS:=$(strip $(LIBGNAT_TARGET_PAIRS))
>
> right at the top-level, just after the per-target chunks, to ensure the
> string is properly normalised before any further tests and comparisons we
> might want to make?
That indeed seems to be a good idea (with a little comment).
--
Eric Botcazou
_EXPR(d).i (a questionable use of VCE, no
doubt about that). There are a few other, more obscur uses, but we get rid
of the most controversial one (optimization barrier on scalars for VRP).
The main countermeasure to ensure consistent TBAA is decl.c:relate_alias_sets
which is aimed at doing the ri
ble to do d._Parent.i and this would be a lot nicer IMO.
--
Eric Botcazou
'true' instead of 'false', like the final
return in indirect_ref_may_alias_decl_p, so that the ultimate fallback is the
comparison of alias sets like it used to be?
Thanks in advance.
--
Eric Botcazou
procedure P is
type Rec (D : Natural) is record
S : String (1..D);
expected passes2314
# of unexpected failures1
Native configuration is sparc64-sun-solaris2.10
--
Eric Botcazou
e.
2. The base access types don't have the same alias set, i.e. one set
is a subset of the other. We have proved that B1 is not in the
access path B2.path and that B2 is not in the access path B1.path
so the references may not alias. */
return get_alias_set (type1) == get_alias_set (type2);
--
Eric Botcazou
> what about sparc-sun-solaris2.10 ? sparc-sun-solaris2.9 and 2.8 ?
sparc-sun-solaris2.8 and sparc64-sun-solaris2.8 are OK as well (GCC 4.3.3, GMP
4.2.4, MPFR 2.3.2).
--
Eric Botcazou
external packed bit-field BLK file p.ads line 11 col 5 size unit size
align 8 offset_align 64 offset
bit offset constant visited 8> bit_field_type context >
We set DECL_BIT_FIELD in the front-end because the field is misaligned.
--
Eric Botcazou
> Should we update:
>
> 1. solaris2.10 -> 2.11
Why move to a not-yet-released version?
--
Eric Botcazou
> Do you suggest your big customers to recompile their 10MLOC Ada code with
> -flto?
-flto doesn't work for Ada yet.
--
Eric Botcazou
> That's slightly worrying. I'm using 'gmake -k check' (GNU make isn't the
> default make on my system) and yet it still fails...
Sure, it "fails" as long as you have failures in the testsuite.
--
Eric Botcazou
> Is the quoting on "fails" significant?
Maybe. :-) Returning a failure code when there are failures is as expected.
--
Eric Botcazou
> The code is available here:
>
> http://git.coreland.ath.cx/gitweb.cgi?p=pfseudo/.git;a=summary
> $ git clone http://git.coreland.ath.cx/pfseudo/.git
See http://gcc.gnu.org/bugs for instructions on how to report bugs.
--
Eric Botcazou
ore
than simply distracting, they are unfair.
--
Eric Botcazou
> The 43 slides presentation in english is available here
> in PDF and openoffice format:
>
> http://guerby.org/ftp/gcc-toulibre-20091216.pdf
> http://guerby.org/ftp/gcc-toulibre-20091216.odp
A small nit: you don't need to do 'make bootstrap' anymore, 'make' is enough.
--
Eric Botcazou
> Yes I explained it during the presentation (on native vs cross) but I
> couldn't remember in what version the change was made so I erred on the
> safe side :).
GCC 4.2 I think.
--
Eric Botcazou
ms src is pseudo register.
>
> further more, no replace(dst->src) is done when building bootstrap
> gcc-4.2.4, which confirmed my understanding.
That sounds plausible. Note that this routine (as well as a few others) has
been removed in GCC 4.4 because of the new register allocator.
--
Eric Botcazou
hough it's still an SJLJ port, I don't think we should let the best be the
enemy of the good here and wait for a hypothetical ZCX port (on which no one
is working for GCC 4.5 as far as I know).
--
Eric Botcazou
see config.gcc. I'd just get rid of it.
--
Eric Botcazou
> The aliasing rules treat "char" specially because char is a bit like a
> "poor main's void".
Not symmetrically though, only for the type of the lvalue expression used to
access the object (C99 6.5.7).
--
Eric Botcazou
> Yes, fair enough; but properties can commute just as much as operators
> can (although it's perhaps less intuitively surprising when they don't).
To be picky, binary operators are commutative (or not), binary relations are
symmetric (or not).
--
Eric Botcazou
o these issues.
--
Eric Botcazou
t option?
An old version is at http://gcc.gnu.org/ml/gcc-patches/2006-06/msg01008.html
--
Eric Botcazou
> And why this option has been removed?
It hasn't, it never got merged in the FSF tree.
> no hope to have that option again in upcoming versions of gcc?
Some hope to have it merged at some point, but no promises as usual.
--
Eric Botcazou
determine whether it makes
sense; it it doesn't, then it should be disabled for vector modes.
--
Eric Botcazou
t; default.
Ideally this should be parameterized purely by insn costs.
--
Eric Botcazou
evelopers test patches according to the guidelines at:
http://gcc.gnu.org/contribute.html
Adding a new compiler to the collection is a different thing. We must have
some evidences that it will work reasonably well on (at least) primary and
secondary platforms, so a good coverage of archit
return true;
+
if (!constant_multiple_of (step, al, &mul))
return true;
}
--
Eric Botcazou
if (toffset
+ && (highest_pow2_factor (toffset) * BITS_PER_UNIT) < mode_align)
+ return true;
+
+ if ((highest_pow2_factor (step) * BITS_PER_UNIT) < mode_align)
return true;
}
--
Eric Botcazou
fact and a good thing, not
> subversion, and hopefully will encourage the gcc devs to either improve gcc
> or migrate to LLVM.
Well, the last point is very likely precisely what Steven is talking about.
GCC doesn't have to shoot itself in the foot by encouraging its developers to
migrate to LLVM.
--
Eric Botcazou
> I don't see how this is gcc the compiler shooting itself in the foot.
Simply because LLVM isn't part of the GNU project.
--
Eric Botcazou
> I can confirm this fixes my test case. Had I known about
> highest_pow2_factor() I might have come up with this myself ;-)
OK, I'll do some testing with it tomorrow. Which GCC versions are affected?
--
Eric Botcazou
> if (!is_gimple_reg (var))
>
> you shouldn't create SSA name and change the lhs of the stmt.
You might also not be allowed to make a copy in the first place but only to
take a reference, see gimplify_cond_expr.
--
Eric Botcazou
* tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
OK, I tested it (a little) with trunk on SPARC/Solaris and SPARC64/Solaris and
things look good as well. I won't be able to do a formal submission before
at least one week so if you feel like beating me to it, go ahead.
--
Eric Botcazou
a little special here because our internal measures show
that GCC 4.x based Ada compilers are faster than GCC 3.x based ones, all other
things being equal, at least on x86/Linux.
GCC 4.5 hasn't been evaluated yet though.
--
Eric Botcazou
neither dozens of invididual contributors nor dozens of companies, including
some of the biggest ones in the computing industry, from contributing and
assigning the copyright to the FSF. It isn't clear why this all of a sudden
appears to have become an insurmountable obstacle.
--
Eric Botcazou
#x27;re modifying and make it so that the new code cannot
be distinguished from the old one in this respect.
Write proper ChangeLogs. They are kind of executive summaries for patches and
help to grasp what they do. The various ChangeLog files have many examples.
--
Eric Botcazou
> 2008-10-01 Mark Mitchell <[EMAIL PROTECTED]>
>
> * MAINTAINERS (Blanket Write Privs): Change to Global Reviewers.
This is apparently incomplete, see the Non-Algorithmic Maintainers section.
--
Eric Botcazou
> Thanks for tracking this down, Steve. Interesting enough, I am seeing
> exactly the same on i386-unknown-freebsd6.3, cf.
>
> http://gcc.gnu.org/ml/gcc-testresults/2008-09/msg02509.html
Likewise on Solaris.
--
Eric Botcazou
hich comes
> bundled with solaris 10, and the upshot is that I'm going to have to
> somehow hack solaris headers in order to make gcc-4.3.2 be able to
> compile perl-5.10.0.
This should be fix-included if it's really a bug in the Solaris headers.
--
Eric Botcazou
> I'm not sure what you are trying to say here - that it should be fixed
> locally on my side at the level of the header file? Or something else?
That it should be fix-included, see fixincludes/README in the source tree.
--
Eric Botcazou
ons given in section 5. Testing fixes (which may or may not work
with the new toplevel bootstrap). Then do 'make install' in the dir.
--
Eric Botcazou
> Yes, I got that from the README. What I was looking for was a
> *shortcut*,
"5. Testing fixes" precisely documents a shortcut.
--
Eric Botcazou
scope of this equivalence differs between the two types of notes.
IOW the culprit is not GCSE but whoever has created this note.
--
Eric Botcazou
> The reason for posting this is to ask. Is there code in GCC that
> already does something "similar" in say one of the optimisation passes
> so i can get a look at how to get started on this?
ipa-pure-const.c
--
Eric Botcazou
> Agreed. The routine that creates the errant REG_EQUAL note is
> lookup_as_function().
Really? Doesn't it only retrieve a pre-existing REG_EQUAL note?
--
Eric Botcazou
pen to have older compilers around (say GCC 4.1.x based) that correctly
compile the testcase? If so, what happens differently with them?
--
Eric Botcazou
EG_EQUAL note. It's even a regression since this doesn't happen with 3.4.x.
--
Eric Botcazou
extern void abort(void);
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
typedef struct
{
uint16_t thread;
uint16_t phase;
} s3
hack the compiler. Note that this would
break exception handling.
--
Eric Botcazou
ult_expr.
I've attached the patch (against the 4.3 branch) we use locally.
* fold-const.c (extract_muldiv): Remove obsolete comment.
(fold_plusminus_mult_expr): Use only positive power-of-two factors.
* expr.c (get_inner_reference): Canonicalize offset.
--
Eric Botc
think that
it would be worth having for the 4.4 release, I can port it and conduct basic
testing with it on the mainline, but that's pretty much it.
--
Eric Botcazou
the SVR4 definition is the one used for
the various BSD variants.
> OpenBSD and Linux are fine; they use 32-63 to number f0-f31.
Linux is fine, OpenBSD is not, at least in the FSF tree.
--
Eric Botcazou
> Ok, so it seems the fix is to reinstate the override in sol2.h,
> right?
This wouldn't change anything except for Solaris. The fix is probably to wipe
out the SVR4 definition (and consequently all definitions in config/sparc
since the remaining ones will duplicate the default)
> My testing indicates otherwise, apart from the lack of support for some
> newer Solaris features.
I presume it's again the combination Sun as + GNU ld?
--
Eric Botcazou
le-shared --enable-multilib
> --with-included-gettext --with-libiconv-prefix=/opt/csw --with-x
> --with-system-zlib --with-gmp=/opt/csw --with-mpfr=/opt/csw
> --enable-languages=c,c++,f95,objc,ada --enable-bootstrap
> Thread model: posix
> gcc version 4.3.3 (GCC)
You could use --with-cpu=v8 instead of v7.
--
Eric Botcazou
> On an (possibly) off-topic note, it seems that gmp requires GNU ld, but GCC
> needs the native ld.
Neither is supposed to be true (and I've built GMP with Sun ld and GCC with
GNU ld many times).
--
Eric Botcazou
ails on ia64-linux, that's a regression from 4.3.x.
--
Eric Botcazou
> 1. Is it supposed to work to bootstrap gnat with a compiler using a
> different EH model from the one you're trying to build?
Yes, I think so.
> 2. Where it uses the host compiler, would it be ok to use the newly-built
> target one instead if host==target, i.e. not a cross compiler?
Yes, probably.
> 3. Should I have needed to add -fexceptions, and if not, why not?
No, see above.
--
Eric Botcazou
changing ZCX_By_Default, and the ADA_CFLAGS -> ALL_ADA_CFLAGS patching, and
> that adding the -fexceptions flag was superfluous - but harmless, no? I'd
> prefer not to respin this whole release YA time if I don't have to!
Superfluous changes are never harmless in a compil
taking any risks fiddling
with the complex Makefile machinery on all platforms.
--
Eric Botcazou
nfident enough with it and given that we know
there is no fundamental issue as far as GNAT is concerned, why not try?
--
Eric Botcazou
are due to the EH or
> if there are other causes.
Thanks for reporting this. Can you try with the attached patch instead, i.e.
without the system-mingw.ads change? This should restore the previous state
and you could then compare the ACATS results.
--
Eric Botc
> Here are the ACATS results running gnat with gccflags="-O3
> -fomit-frame-pointer -funroll-all-loops -finline-functions"
Thanks a lot. Would you mind running it again with the default flags (-O2)?
We don't have comparison points with these non-standard flags.
--
Eric Botcazou
dy provide a linker option to increase stack size to 40MB
> there is still one program failing in a stack overflow.
That could also be just a segmentation fault.
--
Eric Botcazou
t just cygwin, it's also mingw. The Ada compiler is quite broken on
Windows since 4.3 because of the merge glitch.
--
Eric Botcazou
> But I'm against doing more than fixing the merge glitch at this stage.
I think that the Windows maintainers should have the final word though.
--
Eric Botcazou
> I agree--please put in at least the date of the change being reverted,
> which should be the date of the ChangeLog entry.
There is no ChangeLog entry at all. I've replaced the rev by the date.
--
Eric Botcazou
le.in and rebuild the
runtime (make all-target-libada).
--
Eric Botcazou
t either.)
Thanks for stepping in. I thought GNAT could at least be built on cygwin, but
apparently it cannot anymore. I think that we should try to make it build
again for 4.4 by merging just enough of your changes.
--
Eric Botcazou
this:
>
> static tree
> attr_myattr_handler(tree *node, tree name, tree args, int flags,
> bool *no_add_attrs) {
> /* What should I do here */
> }
See the SYMBOL_REF_FLAGS stuff in rtl.h and various examples in the back-ends.
--
Eric Botcazou
fore release,
> submitting one from trunk is the right approach).
Stage 4 needs to be documented on http://gcc.gnu.org/develop.html then.
--
Eric Botcazou
> I will announce the time I am doing the last trunk -> alias-improvements
> branch merge and freeze the trunk for that.
Could you write a short blurb about what will be changed in the optimizer once
the branch is merged (for example in the message announcing it). TIA.
--
Eric Botcazou
> Sure. But see also http://gcc.gnu.org/ml/gcc/2009-01/msg00286.html
Sorry, I forgot about this message. I looked at the wiki but the page doesn't
contain this nice overview. Too many sources of info kill the info. :-)
--
Eric Botcazou
> I'm not sure if it would work and I have idea where in trans*.c
> you need to do this, but if you mark the tree as used with
> something like
>
> TREE_USED (__result_f) = 1
>
> the middle-end may be silenced.
I think that TREE_NO_WARNING would be more appropriate f
finity): Do not special-case subtypes.
(extract_range_from_unary_expr): Do not use the base types.
--
Eric Botcazou
Index: tree-vrp.c
===
--- tree-vrp.c (revision 145851)
+++ tree-vrp.c (working copy)
@@ -121,7 +121,7 @@
expressions) have maximal bounds for
their precision; "range" types should only be descriptive.
--
Eric Botcazou
e to force ranges at will when checks are not present.
--
Eric Botcazou
cation seems tricky, a machine-specific reorg pass could
be more appropriate. I'm not sure we already have something like this in the
compiler (SPARC has a double-load instruction but it's only implemented as a
peephole).
--
Eric Botcazou
eorg pass runs after register allocation. You could try to identify
consecutive loads within basic blocks, group them and rename registers or add
copy insns to be able replace them with multiple loads. Then you could rerun
a cprop_hardreg pass to clean up things.
--
Eric Botcazou
F framework in 4.3.x and later.
--
Eric Botcazou
> Ok, I'll try to look at that. Is there an area where I can see how to
> initialize the framework and get information about which registers are
> free?
The API is in df.h, see for example ifcvt.c.
--
Eric Botcazou
> Doesn't count, because that is done in the TARGET_SETUP_INCOMING_VARARGS
> hook which is called before reload. The interesting case here is
> prologue generation done after reload.
Alpha emits a loop in the prologue to check the stack as per the Tru64 ABI.
--
Eric Botcazou
d
> of the block
Yes, you need to make a copy in this case but its cost could be offsetted by
the gain from the load_multiple. Or it could be eliminated by running a new
instance of cprop_hardreg. You need to experiment and tune the pass.
--
Eric Botcazou
> Ok, I added a df_analyze at the beginning of my target reorg function
> and now it works. Is there anything I should add to cleanup afterwards
> ?
As far as DF is concerned, no, probably nothing.
--
Eric Botcazou
d be nice I think.
--
Eric Botcazou
Ideally this should be independent.
--
Eric Botcazou
e = TREE_TYPE (type);
+
+ if (TREE_CODE (type) != INTEGER_TYPE)
+ return lang_hooks.types.type_for_size (TYPE_PRECISION (type), 1);
+
if (TYPE_UNSIGNED (type))
return type;
when I was experimenting with another approach to the subtype problem.
--
Eric Botcazou
> The build went through without any error,
> but most of the tests failed in "make check".
> unexpected failures = 6472 and passed = 52.
Try with "make -k check" and no -j, parallel testing is broken on Solaris.
--
Eric Botcazou
> What am I doing wrong?
You'll have to look at the logs and see whether there is a common pattern.
--
Eric Botcazou
-l ever worked.) Is there a PR number?
That's already fixed.
--
Eric Botcazou
> This is the varargs code, and I currently solved it by using
> append_to_statement_list(), and then adding the resulting tree to the pre_p
> and post_p using gimplify_and_add(). Is it OK?
Take a look at mainstream ports (x86, rs6000, etc) and use them as a model.
--
Eric Botcazou
GNU assembler instead of the Sun assembler, the latter is barely
maintained by Sun.
--
Eric Botcazou
g
> make_decl_rtl with a local variable, any why.
Yes, it usually means that the local variable hasn't been properly registered
in the binding countour or some such.
--
Eric Botcazou
> Thanks for the explanation. I somehow thought that every insn spit out by a
> define_insn was automatically turned into a parallel.
That's true, the template of a define_insn is automatically wrapped up in a
PARALLEL. But your addsi3 is a define_expand and this works differently
he reward from the other side should be sufficiently high.
--
Eric Botcazou
less robust as far as -g vs -g0 code is concerned
(unless it is enabled unconditionally) and we shouldn't trade this loss of
robustness for nothing.
--
Eric Botcazou
ted and inferior debug info. I think we shouldn't need to do anything
at -O0 apart from sufficiently curbing the code generator to get correct
naive debug info; the sophisticated stuff should be reserved to -O and above.
--
Eric Botcazou
> Well, I see FAILs for -O0 compared to -O1 with VTA - that doesn't look
> "right". How we fix this is not relevant - but we should try to do so.
It would be better not to artificially introduce them in the first place.
--
Eric Botcazou
er has
specified the layout with a representation clause; and, in this case, it does
sort the fields by increasing offsets (see components_to_record) because the
middle-end expects the canonical order in various circumstances.
--
Eric Botcazou
501 - 600 of 1095 matches
Mail list logo