> 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
> Is the quoting on "fails" significant?
Maybe. :-) Returning a failure code when there are failures is as expected.
--
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
> Do you suggest your big customers to recompile their 10MLOC Ada code with
> -flto?
-flto doesn't work for Ada yet.
--
Eric Botcazou
> Should we update:
>
> 1. solaris2.10 -> 2.11
Why move to a not-yet-released version?
--
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
> 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
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
expected passes2314
# of unexpected failures1
Native configuration is sparc64-sun-solaris2.10
--
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);
ble to do d._Parent.i and this would be a lot nicer IMO.
--
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
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
> On what date?
See http://gcc.gnu.org/ml/gcc-testresults/2009-09
--
Eric Botcazou
> I will rebuild with the head and run ACATS on
> one of the broken ones. If still bad, then
> I will try with some simple exception tests
> Laurent put together the last time it broke.
> Maybe they are useful again. :)
Were they added to the gnat.dg testsuite? If no, they sh
> Joel reported results for 4.5.0 20090910 r151592 and state of GCC
> changed a lot in the past 9 days. RTEMS is also a sjlj target IIRC.
Then, if EH is totally broken, a PR should be opened with a reduced testcase.
--
Eric Botcazou
o 225
OK, but the number of Ada failures is exactly 0 on x86/Linux, x86-64/Linux,
ia64/Linux, SPARC/Solaris and SPARC64/Solaris and 1 on PowerPC64/Linux so
you'll have to find out why it's so different for RTEMS.
--
Eric Botcazou
x27;s complaining, which is why I'm
> confused; I thought that bit was stable.
Your .diff contains this
+ EH_MECHANISM=-gcc
so it looks as though the base compiler was SJLJ.
--
Eric Botcazou
me trick isn't working
> on 4.3.4.
I'd do things step by step, i.e. first try to have a full cygwin port without
changing the EH mechanism, then change it.
--
Eric Botcazou
e[2]: *** [compare] Error 1
>
> Would be interesting to see someone build i386-linux (really i386,
> not i586 or i686).
The i586-linux build fails in exactly the same way (this is PR 41241).
--
Eric Botcazou
the system assembler); GNU ld works too, although it lacks some features and
using the system linker might indeed be the Right Thing To Do on Solaris.
--
Eric Botcazou
> I haven't been able to figure out what command to issue from the command
> line to reproduce this. Cut and paste from the dejagnu log doesn't
> work, which is more than annoying...
There is a blurb about this on http://gcc.gnu.org/wiki/DebuggingGCC
--
Eric Botcazou
> I believe that I could legitimately approve that patch myself (it's
> pretty trivial and I didn't author it), but I'd prefer to get approval
> from one of the SPARC maintainers. Here's your chance:
>
> http://gcc.gnu.org/ml/gcc-patches/2009-04/msg01027.html
OK.
--
Eric Botcazou
l by the latter.
So I made a mistake when changing back the DF problem to LIVE in
2009-04-27 Richard Sandiford
Eric Botcazou
* resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
a label's basic block.
(mark_target_live_regs): Tidy and rewor
> I doubt he can help you with this one... When your problem concerns
> reorg, you should talk to people like Eric Botcazou or Richard
> Sandiford or HP Nillson. I've added Eric to the CC, to make this a
> happier crowd. :-)
Thank you. I was about to leave for vacation but I
had
been reported for weeks in PRs and the problematic patch clearly identified.
--
Eric Botcazou
> This was the only va_arg usage, may be we should apply it on trunk too
> as the patched version is supposed to work for both C and C++.
Yes, but I'm testing a patch for trunk with more changes.
--
Eric Botcazou
rc/gcc/ada/gcc-interface/decl.c:7992:33: warning:
identifier 'new' conflicts with C++ keyword
/home/eric/gnat/gnat-head/src/gcc/ada/gcc-interface/decl.c:8008:9: warning:
identifier 'new' conflicts with C++ keyword
but they don't stop the build because -Werror is not passed. That needs to be
fixed first.
--
Eric Botcazou
as the Intel
> compiler) as is reasonable.
Yes, I don't think we should require GCC to build GCC, this would be a step
backwards in my opinion. I can experiment with the Sun Studio compiler.
--
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
> 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
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
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
he reward from the other side should be sufficiently high.
--
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
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
GNU assembler instead of the Sun assembler, the latter is barely
maintained by Sun.
--
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
-l ever worked.) Is there a PR number?
That's already fixed.
--
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
> 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
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
Ideally this should be independent.
--
Eric Botcazou
d be nice I think.
--
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
> 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
> 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
> 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
F framework in 4.3.x and later.
--
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
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
e to force ranges at will when checks are not present.
--
Eric Botcazou
expressions) have maximal bounds for
their precision; "range" types should only be descriptive.
--
Eric Botcazou
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 @@
> 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
> 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 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
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
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
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
le.in and rebuild the
runtime (make all-target-libada).
--
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
> 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
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
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
> 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
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
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
taking any risks fiddling
with the complex Makefile machinery on all platforms.
--
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
> 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
ails on ia64-linux, that's a regression from 4.3.x.
--
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
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
> 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
> 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)
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
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
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
hack the compiler. Note that this would
break exception handling.
--
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
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
> 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
> 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
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
> Yes, I got that from the README. What I was looking for was a
> *shortcut*,
"5. Testing fixes" precisely documents a shortcut.
--
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
> 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
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
> 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
> 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
for this bug. I'm ready to approve
Adam's patch but only if the assertion is downgraded to ENABLE_CHECKING.
--
Eric Botcazou
hasn't been recognized upon reaching these
parts of haifa-sched.c? Will it be only mis-scheduled, i.e. will this only
result in inferior, but still correct code? If so, the assertion shouldn't
be enabled in release mode but only if ENABLE_CHECKING is defined.
--
Eric Botcazou
ved
> the issue and the compiler successfully bootstrapped:
>
> http://gcc.gnu.org/ml/gcc/2008-09/msg00139.html
Thanks for reporting this. I now can close PR 37424.
> There was one reply to this message; I don't know if the patch is being
> reworked or been formally submitted yet, but it did fix my build.
OK, I'll take a look.
--
Eric Botcazou
faults to --with-cpu=v9. On Linux things are
probaby more complicated to set up; Jakub is the resident expert for that.
--
Eric Botcazou
compiler error: Bus Error
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <http://gcc.gnu.org/bugs.html> for instructions.
Confirmed (on Solaris 9). Would you mind opening a PR? There is already one
for Linux (37344) but the failure is a little different. Thanks in advance.
--
Eric Botcazou
same way. gimple.c:gimple_build_asm_vec
is miscompiled at -O2 -fomit-frame-pointer by regalloc/reload because of
inconsistent elimination offsets at a block boundary. It's the IRA merge.
I'd suggest opening a PR, I'll attach a reduced testcase and the analysis.
--
Eric Botcazou
> But is "fixed" on the branch and the trunk.
Then it should probably not be "blocker" anymore.
--
Eric Botcazou
t;blocker" though.
--
Eric Botcazou
> 2008-08-01 Eric Botcazou <[EMAIL PROTECTED]>
>
> * gcc-interface/utils.c (convert_vms_descriptor): Add
> gnu_expr_alt_type parameter.
> Convert the expression to it instead of changing its type in place.
> (build_function_stub): Adjust call
501 - 600 of 1093 matches
Mail list logo