nsiderations that
apply to CIEs in .debug_frame apply to CIEs in .eh_frame as well.
--
Eric Botcazou
o see why, at least on SPARC, %o7 should be good enough.
--
Eric Botcazou
> You set a breakpoint at the return address assuming that you
> will reach it when you finish the function.
OK, in this case you'll need to adjust like in the EH unwinder.
--
Eric Botcazou
ard-quad-float" is used.
>
> - The compiler does not insert fpu instructions, if "-mfpu" or
> "-mhard-float" is used.
Stupid breakage, now fixed on all active branches in the tree:
http://gcc.gnu.org/ml/gcc-patches/2007-06/msg00879.html
Thanks for reporting it.
--
Eric Botcazou
e (namely LTO), we should probably try
to understand what's going on (or not going on).
--
Eric Botcazou
end was too dumb to get in the first place (IE loads,
> stores)
Note that Tree-SSA was supposed to butcher the RTL optimizers and replace them
with something less "crappy" though.
--
Eric Botcazou
with that.
Adam has simply run with C into another form of the same discrepancy we have
run into when we tried to enable struct aliasing with Ada, see PR 25737.
--
Eric Botcazou
mponent. */
#define DECL_NONADDRESSABLE_P(NODE) \
(FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_3)
--
Eric Botcazou
t; I didn't invent it either, but everything is more or less documented.
>
> No, not really.
Yes, it is, that's how I've understood how this stuff works.
--
Eric Botcazou
struct foo *foop = &bar.
>
> foop->x = 5.
>
> It can, even though we *claim* X is nonaddressable.
Which can what exactly?
--
Eric Botcazou
> I am trying now to prototype a new approach along the lines of
> returning true in component_uses_parent_alias_set for SFT's with
> DECL_NONADDRESSABLE_P.
Yes, the key problem is indeed SFTs, which is why we disable structure
aliasing in the Ada compiler.
--
Eric Botcazou
plausible at the tree level. If we eventually
fail, we could indeed consider disabling the optimization at the RTL level.
--
Eric Botcazou
thing at the RTL level?
I'm sure that we can devise something better.
--
Eric Botcazou
cess
the gcc/include directory with "../include" from "build*/liberty"
which
obviously should be "../../include", so it gives up. I just can't win.
Sounds like you're using ./configure. Are you following the directions
at:
http://gcc.gnu.org/install/configure.html
-eric
ms that ld
believes that the libc that you have doesn't match the gcc that you're
building. (i.e. the bfd arch is incompatible).
-eric
n is amd64
if that
stirs up any ideas)
'gcc -v' will give you the information on how the system gcc was
configured.
-eric
great. This could be
implemented by another section that has a new set of attributes if
necessary for a target.
-eric
operation, so the proper term
for 2 would be "symmetric". For the sake of completeness, you could also add
that it's reflexive: a < a holds.
Which would suggest to find a better symbol than '<' for it. :-)
--
Eric Botcazou
ation.
-eric
On Jun 20, 2007, at 9:40 PM, Pompapathi V Gadad wrote:
Hello Eric,
The target I am working on is 16-bit target and cannot support 64-
bit data types (DI mode).
How about conditionally declare the function?
#if LONG_LONG_TYPE_SIZE > 32
extern DItype __bswapdi2 (DItype);
#endif
You'
i586 and x86-64 at
revision 125912:125915M (i.e with structural alias analysis enabled).
Unfortunately I'm not sure we have 64-bit PowerPC machines at AdaCore.
--
Eric Botcazou
> Note that if cc1-checksum.o differs, it likely means the issue is unrelated
> to Ada.
cc1-checksum.o very offen differs on my machine, it doesn't stop the build.
--
Eric Botcazou
interaction between it and Ada anymore.
We cannot really debug on PowerPC 64-bit so I'd suggest to disable Ada in your
builds for the time being (unless you have the time to investigate yourself).
Maybe the problem will arise on other platforms and we'll be able to debug it.
--
Eric Botcazou
> Maybe the problem will arise on other platforms and we'll be able to debug
> it.
SPARC/Solaris 32-bit is OK. I'm going to try the 64-bit variant.
--
Eric Botcazou
> I'm going to try the 64-bit variant.
SPARC/Solaris 64-bit is OK, as well as IA-64/Linux according to:
http://gcc.gnu.org/ml/gcc-testresults/2007-06/msg01044.html
Do you test PowerPC 32-bit or should I try a build on Darwin or AIX?
--
Eric Botcazou
> I tested it on powerpc64-linux with the default option
> --with-cpu=default32.
Ah, so this is a 32-bit compiler like on sparc64-linux?
--
Eric Botcazou
cc is GCC 3.4.3):
Using built-in specs.
Target: sparc-sun-solaris2.5.1
Configured with: /home/eric/svn/gcc/configure
--prefix=/opt/build/eric/local/gcc --with-gmp=/opt/build/eric/local
--with-mpfr=/opt/build/eric/local --with-local-prefix=/opt/build/eric/local
--enable-languages=c --enable-checki
ly. But, as Mike told me privately, STABS are sensitive to the build
directory, so I tried again and got identical executables byte-for-byte:
sunshine% ls -l gcc.cc/gcc/cc1
-rwxrwxr-x 1 eric eric 46745912 Jun 25 03:30 gcc.cc/gcc/cc1
sunshine% ls -l gcc.gcc/gcc/cc1
-rwxrwxr-x 1 eric
n your insn.
--
Eric Botcazou
= other_pat;
> + SUBST (PATTERN (undobuf.other_insn), other_pat);
I'm not too thrilled by this. I think that the above code is meant to be the
last verification before committing the change, but is not (anymore?) since
there are 2 calls to undo_all right after it.
Would it solve your problem to move the block of code after the 2 calls?
--
Eric Botcazou
gisters and LOG_LINKS. */
And put the new block just after the above comment, surrounded by a couple of
line skips.
>If I'm going to say something I like about this version of the patch,
> then it'll be that we don't mung the notes until we've checked the costs.
Right, I also think that this is a progress.
The patch is pre-approved for mainline with the 2 aforementioned changes.
--
Eric Botcazou
> 4.3 trunk revision 126185 I got at x86_64:
>
> libtool: compile: unable to infer tagged configuration
> libtool: compile: specify a tag with `--tag'
> make[6]: *** [kill.lo] Error 1
>
> Anyone else got the same?
Yes, but resync your tree and this will be gone.
--
Eric Botcazou
and check SImode as well.
Tested on mips64vr-elf and x86-darwin.
OK?
-eric
2007-07-03 Eric Christopher <[EMAIL PROTECTED]>
* libgcc2.h: Conditionally include __bswapsi2 and
__bswapdi2.
Index: libgcc2.h
===
---
_PTR_EXPR || TREE_CODE (t) == FILTER_EXPR)
return true;
return (is_gimple_variable (t) || is_gimple_min_invariant (t));
}
or does it have really something to do with TREE_INVARIANT trees?
--
Eric Botcazou
}
+
it doesn't do anything since the expression is_gimple_val.
--
Eric Botcazou
e;
return (is_gimple_variable (t) || is_gimple_min_invariant (t));
}
and is_gimple_val is a formal predicate IIUC. In this latter case, we
wouldn't have much leeway and is_gimple_min_invariant should simply
implement the GIMPLE grammar, i.e the CONST in
val : ID
| CONST
--
Eric Botcazou
nts).
Right. I guess that most consumers expect is_gimple_min_invariant to mean
"minimal invariant in GIMPLE form". I'll try to come up with the maximally
valid predicate implementing this for ADDR_EXPR expressions.
Thanks for your feedback.
--
Eric Botcazou
> #define BEFORE_RELOAD_P (!reload_in_progress && !reload_completed)
I'd personally vote for something like this.
--
Eric Botcazou
re more substantial changes in the gimplifier than what is
required to fix the is_gimple_min_invariant problem. Can't we live with it?
--
Eric Botcazou
case INTEGER_CST:
case REAL_CST:
or by uncoupling the 2 functions, i.e creating a recursive predicate for use
outside of gimplification?
--
Eric Botcazou
> op2 -> val
> op3 -> val
>
> index-val: ID | CONST
>
> val: index-val | invariant
>
> invariant: rhs with TREE_INVARIANT set
I don't see why you're special-casing ARRAY_REF (and ARRAY_RANGE_REF). As
Richard pointed out, there are other rules that would need to be changed.
--
Eric Botcazou
t. */
if (!do_fre && n_basic_blocks < 4000)
{
compute_antic_safe ();
compute_antic ();
insert ();
}
--
Eric Botcazou
&& simplified != rhs)
{
VN_INFO (lhs)->expr = simplified;
VN_INFO (lhs)->has_constants = true;
changed = set_ssa_val_to (lhs, simplified);
goto done;
}
--
Eric Botcazou
ne and unroll is_gimple_addressable. */
while (1)
{
t = TREE_OPERAND (t, 0);
if (is_gimple_id (t))
return true;
if (!handled_component_p (t))
return false;
}
}
return true;
}
--
Eric Botcazou
> Note that I spent less time writing this patch than I did replying to
> the e-mail messages on this thread.
You're probably going to hit the roof :-) but could you rename the predicate
to can_create_pseudo_p? "may" is somewhat ambiguous for non-native speakers.
--
Eric Botcazou
alue_number_call (tree stmt)
tree-ssa-pre.c:can_value_number_operation (tree op)
tree-ssa-pre.c:can_PRE_operation (tree op)
--
Eric Botcazou
> Why would the RTL represent target CONST_INT as HOST_WIDE_INT?
HOST_WIDE_INT is the wide integer type used throughout the compiler.
--
Eric Botcazou
> How does this work for 32-bit hosts and 64-bit targets?
Some (most?) 64-bit targets require a 64-bit HOST_WIDE_INT.
--
Eric Botcazou
90
need_64bit_hwint=yes
;;
sh[123456789lbe]*-*-*)
cpu_type=sh
need_64bit_hwint=yes
;;
--
Eric Botcazou
> Sorry: I guess my information is dated. What changed so that it's now
> required?
I presume the reasons you gave + the usual nasty bugs prompted someone to
decide that it was not worth the troubles after all.
--
Eric Botcazou
0);
+ }
+ if (!is_gimple_addressable (t))
+ return false;
+ break;
+ }
case TRUTH_NOT_EXPR:
if (!is_gimple_val (TREE_OPERAND (expr, 0)))
--
Eric Botcazou
questions
or comments on the code please let him know - if you're at the summit
and want to know how to use it just ask him! Otherwise I'm sure he'd
like mail.
The branch is at:
svn://gcc.gnu.org/svn/gcc/branches/plugin
-eric
what options do I need to set on the configure line in order for this to
work?
See http://gcc.gnu.org/gcc-4.2/changes.html , SPARC section.
--
Eric Botcazou
The default cpu is v8plus.
v9 actually, which automatically enables the V8+ stuff in 32-bit mode.
--
Eric Botcazou
pping between -mcpu settings and 32-bit ABI levels is as follows:
-mcpu 32-bit ABI
v7 v7
v8 v8
v9 v8plus
ultrasparc v8plusa
ultrasparc3v8plusb
--
Eric Botcazou
ions to the SPARC toolchain by Sun or
Canonical people over the last few years.
--
Eric Botcazou
ARC toolchain from Sun. There have been indirect contributions, e.g. for
Solaris 10 support, and AFAIK they have been merged in the FSF tree.
--
Eric Botcazou
const_double rtx and I appreciate
> help regarding this.
CONST0_RTX (SFmode)
--
Eric Botcazou
nu
Looks like
2007-08-31 Ben Elliston <[EMAIL PROTECTED]>
* Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
when compiling for powerpc64-*-linux.
* system-linux-ppc64.ads: New file.
needs to be refined.
--
Eric Botcazou
> Sorry, folks. I've rolled this back.
Thanks, but this was not really necessary, Ada doesn't define
LANG_HOOKS_EXPAND_CONSTANT, you only needed to restore lhd_return_tree.
--
Eric Botcazou
> Seemed safer to just roll things back and sort it out later.
Understood, thanks again for the quick turn around.
--
Eric Botcazou
> I would appreciate it is one of the SPARC/Solaris
> users would see if they can duplicate this.
I cannot duplicate on SPARC/Solaris, but my tree is not pristine.
This is for a --disable--bootstrap compiler built at -O0 -g.
--
Eric Botcazou
> The two files in question do compile at -O0 so you wouldn't
> trip it.
You misunderstood, only the compiler is built at -O0 -g, the runtime is built
normally at -O2 -g.
--
Eric Botcazou
cause it's a builtin. More generally, the RTL back-end
is allowed to mangle symbol names at its pleasure. You can display the RTL
associated with a FUNCTION_DECL by invoking debug_tree on it from within GDB.
--
Eric Botcazou
if you care about OpenMP on Solaris 10.
--
Eric Botcazou
-testresults/2007-10/msg00390.html
They are more noisy than usual because of -fpic/-fPIC testing.
--
Eric Botcazou
iki? How does this work with a patch system? How do you propose to resolve
conflicts between a user edit, and maintainer's patch? Maybe I'm ignorant to
the capabilities of a wiki, but this is where it sounds like incompatible
systems.
Eric Weddington
x-gnu
> i386-unknown-freebsd5.5
> i686-pc-linux-gnu (2)
> ia64-unknown-linux-gnu
> s390-ibm-linux-gnu
> s390x-ibm-linux-gnu
> sparc-sun-solaris2.8
> sparc64-unknown-linux-gnu
> x86_64-unknown-linux-gnu (2)
Thanks!
--
Eric Botcazou
> If you make the function static then gcc can chose ABI-incompatible
> calling conventions.
Right, and the gain can be significant on x86.
--
Eric Botcazou
> I get the following ICE running bootstrap with -O2 on ppc,
> --with-cpu=default32 r129655:
http://gcc.gnu.org/ml/gcc-patches/2007-10/msg01543.html
--
Eric Botcazou
le for each version of the library.
The surge comes from the fix for PR tree-optimization/33870 (rev 129675).
With it, 'make all-target-libjava' takes 261 min user time. If I revert it,
do a 'make quickstrap' and run the command again, it only takes 109 min.
--
Eric Botcazou
> I'm working on it.
Thanks. However, don't we simply void the benefit of memory partitioning by
recursing on the MPTs?
--
Eric Botcazou
mong other things.
>
> But if *v is simply shared, do all stores to it matter? No, only the
> final value is relevant.
Define "final value".
--
Eric Botcazou
rom
the viewpoint of the current thread, this is the crux of the matter.
--
Eric Botcazou
> The value that will be seen by other threads after they synchronize
> memory (with pthread_mutex_lock(), for instance).
What does it mean from the viewpoint of the current thread?
--
Eric Botcazou
> Let's see what the results are on the now "optimal" first strategy.
Far better, but I've still a 51 min gap on a full checking bootstrap.
--
Eric Botcazou
're
currently working adding 19 new devices for the next release cycle.
Eric Weddington
.
See gcc/gthr-posix.h for a proper use of "volatile" for a shared access.
--
Eric Botcazou
> The use doesn't become proper simply because it appears in the code,
> even if in the code of GCC. volatile might be used there for
> completely different reasons.
No, I put it there for this purpose.
--
Eric Botcazou
> I have applied the "final" patch, if you want to re-test.
Slightly better, but not much (7 min for a full-checking bootstrap).
--
Eric Botcazou
mer has
> asked for, is often an overall loss.
That's a little outdated though, 4.x behaves differently.
--
Eric Botcazou
not all
or nothing like your earlier message[*] seemed to imply.
[*] http://gcc.gnu.org/ml/gcc/2007-10/msg00663.html
--
Eric Botcazou
mple you gave in your first message.
--
Eric Botcazou
> Please read the _description_ that comes along with the code example.
I did.
> Anyways, the patch is there.
The one for ifcvt.c, yes; more will be needed though, see for example
http://gcc.gnu.org/ml/gcc/2007-10/msg00754.html
--
Eric Botcazou
he fix for PR tree-optimization/33870 basically short-circuited it.
--
Eric Botcazou
es by providing more accurate
> insns lengths?
Yes, but this should work automatically. IOW, as Ian said, you shouldn't need
to do anything special. Maybe it's simply a latent bug in the PPC back-end.
--
Eric Botcazou
an instruction should not be true under
> INSN_P. Yet, INSN_P returns true for DEBUG_INSN. This is already
> leading to a lot of special-casing of DEBUG_INSN throughout the RTL
> bits of the compiler on the branch.
I share your concerns, but I've not looked at the specifics.
--
Eric Botcazou
gt; Anyways shouldnt reload be checking for live registers before reloading into
> them ?
Of course, it goes to great length to do so but there can be bugs. You didn't
specify which version of the compiler you're using though; they may have been
already fixed on the mainline.
--
Eric Botcazou
> Oh, I am using quite a new version of the compiler - rev 129547,
> DATESTAMP 20071022.
OK. AFAICS there is nothing glaring in the RTL you posted so you'll have to
put a watchpoint and find out who has set reg_rtx for this particular reload.
--
Eric Botcazou
3 $c3 [ ivtmp.103 ]))
>(expr_list:REG_DEP_TRUE (use (reg:SI 2 $c2 [ h ]))
>(expr_list:REG_DEP_TRUE (use (reg:SI 1 $c1 [ ivtmp.101 ]))
>(nil))
I don't think so, it should be in dead_or_set, the value contained in $c1 dies
in the insn.
--
Eric Botcazou
nder pressure. Do you define REG_ALLOC_ORDER for your
port? If so, in what position is $c1?
--
Eric Botcazou
ick an open PR in Bugzilla (http://gcc.gnu.org/bugzilla) and
try to fix the problem. We have dozens of these. :-) Some of them have been
pre-analyzed. An ICE (internal compiler error) is probably easier to start
with than a wrong-code bug.
--
Eric Botcazou
> I'm still seeing the same failure on x86_64-unknown-linux-gnu, is this
> going to get fixed?
You're not supposed to configure the compiler with --disable-checking as this
disables the internal assertions, use --enable-checking=release instead.
--
Eric Botcazou
compiler are a feature, --disable-checking should not be advertised since
all the assertions are now predicated on at least --enabled-checking=release.
That being said, if there is a bug, I agree that we should try and fix it.
--
Eric Botcazou
> I opened a bug
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34144
Thanks!
--
Eric Botcazou
ptimization set to -O3.
Thanks for doing this!
> Thanks to Sun for donating a T2000 to Debian and to OSU's Open Source
> Lab for hosting the machine.
Seconded. :-)
--
Eric Botcazou
applications where they are generally
optimized for size, but have a time-critical function that needs to be
optimized for speed. I would vote for including both the attribute
syntax and the pragma syntax. I have many users who would be more
comfortable with the pragma syntax, despite any shortcomings.
Eric Weddington
> Can anyone report that Ada works on the
> head on a SPARC or PowerPC self-hosted
> system?
http://gcc.gnu.org/ml/gcc-testresults/2007-11/msg00945.html
--
Eric Botcazou
gnat_begin_handler
> + __gnat_end_handler
>
> Where do those come from and how do I turn them on?
raise-gcc.c and a-exexpr-gcc.adb, you need to add
EH_MECHANISM=-gcc
to the RTEMS section of Makefile.in.
--
Eric Botcazou
time from -O2 -> -O0 to work around the
> huge compile time. Is it possible that that
> is breaking the run-time?
That should not, in any cases.
--
Eric Botcazou
1401 - 1500 of 1858 matches
Mail list logo