Hello,
It will be appreciated if anyone could help send me the copyright
assignment forms. I need them to submit patches to gcc. I think it
should be an assignment for all future changes.
Thanks
Eric
Hi,
In gccint, 7.2.3.3 Vector-specific attributes, there are two items
talking about vect_int_mult:
vect_int_mult
Target supports a vector widening multiplication of short operands
into an int result, or supports promotion (unpacking) from short to
int and a non-widening multiplication of
Hi,
Try using gcc-vcg-plugin to browse tree and cfg during debug gcc. It's
just an initial version for now. Any suggestions will be appreciated.
:-)
http://code.google.com/p/gcc-vcg-plugin/
Thanks,
Eric Fisher
Hi,
I just wrote a little gcc plugin, which can be used to show GIMPLE cfg
graphically when debug gcc. Currently, it's still a very initial
version. It,
* transfers tree dump into vcg file,
* then invokes vcgview (or aisee etc.) to show the graph.
I would like to improve it to support both
Hi,
I'd like to put the test case and results on trunk here,
-
void
foo (int x)
{
int i;
for (i=0; i 10 ; i++)
if (x)
{
if (i == 0)
fun_1 ();
else
fun_2 ();
}
}
---
$ gcc -O3
See the attachment for the cfg pictures.
Thanks,
Eric
foo_vcg.tar
Description: Unix tar archive
2010/1/6 Jeff Law l...@redhat.com:
Please file a bug report with a complete testcase so that we can see what's
happening rather than trying to speculate.
jeff
Uh, seems this problem doesn't occur on trunk. Because before
pass_dominator, pass_complete_unrolli is able to unroll the following
Hi,
When I tried to build the last svn version on ia64 and got this failure.
Comparing stages 2 and 3
warning: gcc/cc1obj-checksum.o differs
warning: gcc/cc1-checksum.o differs
warning: gcc/cc1plus-checksum.o differs
Bootstrap comparison failure!
gcc/cp/name-lookup.o differs
make[2]: ***
Hi,
I found that sometimes -fno-tree-dominator-opts will bring a big speed
promotion. This is because that pass_dominator tries to thread jumps.
But sometimes this will cause that the loop's exit bb does not
dominator its latch bb again. Then pass_complete_unroll is unable to
know the exact
Hi,
gcc.log
Executing on host: /media/E/svn-gcc/build-trunk/gcc/xgcc
-B/media/E/svn-gcc/build-trunk/gcc/
/media/E/svn-gcc/trunk/gcc/testsuite/gcc.dg/Wunreachable-8.c -O2
-Wunreachable-code -S -o Wunreachable-8.s(timeout = 300)
Hi,
I run into such an XPASS for trunck. And it seems an old problem.
XPASS: gcc.dg/Wunreachable-8.c (test for bogus messages, line 7)
/* { dg-do compile } */
/* { dg-options -O2 -Wunreachable-code } */
float Factorial(float X)
{
float val = 1.0;
int k,j;
for (k=1; k 5; k++) /* {
Hello,
I currently use aiSee (demo version) to view vcg dump of gcc. One
problem is that the tool works too slowly. The another problem is that
graph looks ugly, especially when unforlding a big cfg. Who can
recommend me a good vcg viewer? Thanks.
Best Regards,
Eric
2009/8/15 Sebastian Pop seb...@gmail.com:
You should put a TODO_update_ssa in the flags of prefetching pass.
With the attached patch I don't see an error.
Thanks. Finally, I figure out that it's because that after copying the
loop, I should have created a preheader to ensure that new_loop's
2009/8/13 Sebastian Pop seb...@gmail.com:
Could you please send the patch you are working on, together with
a reduced testcase? This could help to reproduce the error.
Thanks.
I put the patch and a test below. The patch is based on 4.4.0. It's
just a toy, I haven't a nice design for now.
Hi,
I'm implementing a loop peeling function used in
tree-ssa-loop-prefetch.c according to the following comment,
/* Step 5: unroll the loop. TODO -- peeling of first and last few
iterations so that we do not issue superfluous prefetches. */
I take the functions slpeel_* in
Hi,
Is it useful to implement a high-level universal function
tree_peeling_loop in tree-ssa-loop-manip.c? I want call it in
tree-ssa-loop-prefetch.c.
If yes, can anyone give me some clues? I find currently,
vect_do_peeling_for_loop_bound is doing a similar work in
tree-vect-transform.c.
Hi,
I read the paper The Visual Development of GCC Plug-ins with GDE
from gcc summit 2009. It's a powerful tool. So where can I get it to
help me debug and study gcc?
Thanks a lot.
Eric
Hello
Sorry, I hope it's not an offensive or boring topic.
Some of my friends asked me if it's true that gcc will be replaced by
other compilers on a few OS and what is the problem.
Any comment?
Best wishes
Eric Fisher
Hi,
I just want to ask whether we have any special pass to reduce cache
miss? Or any idea or branch to enhance it.
Thanks
Eric Fisher
-standard path
But, lto-plugin is failed in stage2 with the error
/usr/bin/ld: cannot find -lelf
I look into the Makefile and find that LDFLAGS is set as BOOT_LDFLAGS
scine stage2, so I have to set this variable also.
Is it a right way that it should go?
Best wishes,
Eric Fisher
of
variable @code{b}. Real definition are also known as @dfn{killing
definitions}. Similarly, the use of @code{b} reads all its bits.
Eric Fisher
May 15, 2009
2009/5/16 Diego Novillo dnovi...@google.com:
On Fri, May 15, 2009 at 02:12, Eric Fisher joefoxr...@gmail.com wrote:
I think it's a mistake between a and b. It should be,
variable @code{a} is completely modified with the contents of
variable @code{b}. Real definition are also known as @dfn
also a problem
which is that the user need to consider the length of the function
name and length of the label string buff.
Best regards,
Eric Fisher
Mar 17, 2009
with the same name. Perhaps it's again the
-fverbose-asm to enable this functionality. But where should I go if I
wanna implement this functionality?
Cheers,
Eric Fisher
Mar 16, 2009
It avoids a branch instruction. For the first case, the path via x =
a is test - jump - set - jump (where set is th x =
a-instruction). This becomes set - test - jump. So one jump
less.
Thank you very much for the detailed explanation. However, I have a
doubt here. IMO, the path via x=a
Hi,
For if-conversion pass (pass_if_after_combine), we can see there're
some IF-THEN-ELSE cases which we try to transform. Let's say
find_if_case_1, for an example.
(1)
if (test) goto over; // x not live
x = a;
goto label;
over:
becomes
x = a;
Interesting. At least. There should be a warning from gcc.
Eric
2008/11/14 Tim München [EMAIL PROTECTED]:
On Friday 14 November 2008 10:09:22 Anna Sidera wrote:
Hello,
The following code works in lcc in windows but it does not work in gcc in
unix. I think it is memory problem. In lcc there
Ah, maybe I should say contributor.
Best regards,
Eric
2008/11/12 Manuel López-Ibáñez [EMAIL PROTECTED]:
2008/11/11 Eric Fisher [EMAIL PROTECTED]:
Hello,
Anyone could tell how to be a gcc maintainer? Is there any
requirement? Actually, my previous work are all not based on the gcc
trunk
Hello,
Anyone could tell how to be a gcc maintainer? Is there any
requirement? Actually, my previous work are all not based on the gcc
trunk. So no patch submitted. Anyway, it's cool to contribute :-)
Thanks.
Eric Fisher
2008-11-11
So I think one of the possible solution would be to reverse the div.g and teq
insn.
And I think this is not hard to do, just modify mips_output_division()
function.
Also I think this is a better solution, since we can save a register.
Do you mean the modification like this?
+
+
+/* Used
'branch' insns? Is it OK?
Eric Fisher
2008-11-3
/
--with-mpfr=/home/xmj/install/mpfr-2.3.1/
Thread model: posix
gcc version 4.4.0 20081022 (experimental) (GCC)
$uname -a
Linux tini-boy 2.6.18.1-fl2f-pc-v1.1.0 #66 Fri Sep 12 13:03:52 EDT
2008 mips64 GNU/Linux
Is it a bug?
Eric Fisher
2008-10-24
|| ReadyTry[0]
...
here should be
if n 0 ReadyTry[0]
since 'the algorithm guarantees that the instruction with the highest
priority will be issued on the current cycle).'
Of course, implemented code in gcc is right :-)
Eric Fisher
2008-9-9
PROTECTED]:
Eric Fisher wrote:
hi
Is there anyone working on the loongson support of gcc? I notice
that loongson has been added into the currently developing binutils.
Eric,
I will start working on submitting Loongson patches developed at
CodeSourcery next week. These patches include
hi
Is there anyone working on the loongson support of gcc? I notice
that loongson has been added into the currently developing binutils.
ericfisher
hi
I'm not clear why we have 'udiv', but don't have 'umul' for Standard
Pattern Names. Does I need to define a nameless pattern for it?
Thanks in advance.
eric
I guess that the argument of the user defined command in gdbinit.in
should be $arg0. Also, due to the changes of the structure tree node,
ptc should be,
define ptc
-output (enum tree_code) $.common.code
+output (enum tree_code) $arg0.base.code
echo \n
end
Here's the patch,
--- gcc/gdbinit.in
hi,
I configure GCC as follow:
PATH=/gnutools/bin:$PATH ; export PATH
mkdir -p /tmp/build/gcc
cd /tmp/build/gcc
/src/gcc-3.2.1/configure --target=mipsel-elf \
--prefix=/gnutools --enable-languages=c,c++ \
--with-gnu-as --with-gnu-ld --with-newlib \
--without-headers --disable-shared
hi,
Anybody knows that if we can define a comment? For a statement such as,
COMMENT this is a comment.
will be preprocessed as,
// this is a comment.
or something valid and transparent to the compiler? Of cause we can't
directly use,
#define COMMENT //
Thanks.
Eric.
Seems the question has been solved, here is the changes of
treelang/parse.y, just for fun :-)
$ diff treelang/parse.y treelang/parse_new.y -u
--- treelang/parse.y2004-01-08 15:50:46.0 +0800
+++ treelang/parse_new.y2006-04-13 18:00:34.390625000 +0800
@@ -48,6 +48,7 @@
#include
hi,
When I build gcc-3.2.2 for mips target, there's an error. What's the problem?
Thanks
Eirc
ake[1]: Leaving directory `/home/cii/qwang_gcc/libiberty'
xgcc: specs file malformed after 4096 characters
xgcc: specs file malformed after 4096 characters
xgcc: specs file malformed after 4096
hi,
You know that treelang prescribes the function prototype must give the
storage class type explicitly, for an example, external_definition
int add(int arg1, int arg2);
I'd like to know how to modify the parse.y to let the storage type can
be implicitly and the default type is
Hi,
I've ported gcc to mytarget-linux version. The object file compiled
now are shared one. My current simulator is able to run static
executable program and just translate binary code one by one. I know
shared file needs dynamic linker to load. So I'd like to know can I
run shared file on my sim?
Hi,
After talking about mips-elf, mips-linux, mips-elf-linux-gnu, my
friend told that there is also a target of mips-linux-elf. My God,
confused.
Yours,
Eric.
Hi,
I installed cross gcc3.4.4 on my linux/pc server with
--target=mips-elf. When I use mips-linux-gcc to compile a c file, the
assembly code will have psuedo-op used for system v.4 (e.g. .cpload).
And the object file is of big endian. So I have to use flag
-mno-abicalls and -EL every time. Are
But, they told me that mips-elf is for 'no-opsys' target, and does't
support glibc. So if I want to use gcc for operantion system and
glibc, should I use mipsel-linux?
Thanks
27 Feb 2006 22:55:48 -0800, Ian Lance Taylor ian@airs.com:
Eric Fisher [EMAIL PROTECTED] writes:
I installed cross
I think we shouldn't make abicalls as default in my opinion. :-)
2006/2/28, Eric Christopher [EMAIL PROTECTED]:
On Feb 27, 2006, at 11:01 PM, Eric Fisher wrote:
But, they told me that mips-elf is for 'no-opsys' target, and does't
support glibc. So if I want to use gcc for operantion system
Hello,
My port is originally aimed for mytarget-elf and has been able to built to use.
Now I want to use another target, mytarget-linux, just like mips-elf
and mips-linux.
Binutils is ok and has been installed, but when build gcc, there is
such a error,
/home/smj/build_gcc_linux/gcc/xgcc
Hi,
I'm really confused by mips targets, such as mips-elf, mips-linux,
mips-elf-linux, mips-elf-linux-gnu. I will appreciate if anyone can
tell me the difference between them.
Thanks.
Eric.
Hi,
Given such a source file,
/*fun.c*/
int b=2;
void fun(void)
{
int a=b;
}
Then compile it,
$ mips-elf-gcc -shared -fpic fun.c -o fun.so -save-temps
We can see this below from fun.s,
lw $2,%gp_rel(b)($28)
I think symble 'b' should be of GOT relocation.
But it isn't.
$ mips-elf-readelf
Hi,
Thanks for giving directions. I've read the codes about this and got
some conception. But I possibly made a mistake, I think. For the
linker, ppc64elf.em and elf64-ppc.c have the solution. For the gcc,
rs6000.c also has the solution. There is a mail, [tree-ssa] -longcall
branch islands for
Hi,
While I read the mips.md, I find there are some constraints used in
function call templates, such as 'c' and 'j'. But these two
constraints seem not be defined and I can't find their explanation
both in source files and gcc internal. Well, aren't there anywhere I
missed? Otherwise, how can
Hi,
Happy Valentine's Day.
Suppose I have only pc-relative branch instructions such as 'b offset'
and don't have pc-region branch instructions such as 'j target'. So
what the function call should be translated? Do I have to always use
two instructions such as 'la reg, func' and 'b reg'? Especially
, Eric Fisher wrote:
Suppose I have only pc-relative branch instructions such as 'b offset'
and don't have pc-region branch instructions such as 'j target'. So
what the function call should be translated? Do I have to always use
two instructions such as 'la reg, func' and 'b reg'? Especially
the
function address anyway. Whatever we do with gcc backend or as/ld. I
see.
Thanks
Eric
2006/2/14, Mike Stump [EMAIL PROTECTED]:
On Feb 13, 2006, at 8:31 PM, Eric Fisher wrote:
Thanks. I'm working to port gcc to our chip. I use mips-elf as the
start.
Most chips have this same issue, you can
Hi,
I will be appreciated for anyone tell me how to create libgcc_eh.a for
mips-elf-gcc.
I used this configuration, but failed
../gcc-3.4.4/configure --target=mips-elf --enable-languages=c --enable-shared
Yet libgcc_eh.a can be created for local i686 gcc, when use this,
../gcc-3.4.4/configure
But there are still some failures. I'm not sure if they are okey. The
error messages are like these,
Executing on host: /home/smj/build_gcc_mips/gcc/xgcc
-B/home/smj/build_gcc_mips/gcc/
/home/smj/gcc-3.4.4-mips/gcc/testsuite/gcc.dg/pch/static-1.c -O0
-I. -S -o static-1.s(timeout = 300)
But there are still some failures. I'm not sure if they are okey. The
error messages are like these,
Executing on host: /home/smj/build_gcc_mips/gcc/xgcc
-B/home/smj/build_gcc_mips/gcc/
/home/smj/gcc-3.4.4-mips/gcc/testsuite/gcc.dg/pch/static-1.c -O0
-I. -S -o static-1.s(timeout = 300)
Hi,
I think I've got the answer from GCC Bugzilla Bug 11341. It said that
this was possibly a known problem with cygwin. For some reason cygwin
has always had problems with PCH. Then I run the testsuite on the
linux and most of them passed.
Thanks for your time.
Eric.
Hi,
I'm wondering whether the precompiled headers tests are ok for
mips-elf-gcc 3.4.4 on cygwin. When I run the testsuite for
mips-elf-gcc on cygwin using such command,
make check-gcc RUNTESTFLAGS=pch.exp
The errors are like these following. It seems that there is no
common-1.h at all.
In
Hi,
When I run the test suite on my port, there are many many failures
with the error like this,
ld: cannot find -lm
collect2: ld returned 1 exit status
I'm not sure whether it is the libm(math library), or it is of glibc.
But I guess it is a builtin library of gcc and has nothing to do with
Why so many tests need libm? I don't think the tests really used the
functions of libm. Can I port glibc to get it?
Eirc
I guess that the macro NGARDS is relevant to the guard digit. But I
still failed to have a clear conception about what it means. Others
are easy to know by IEEE 754 and What Every Computer Scientist Should
Know about Floating-Point Arithmetic. Except,
define NGARDS 8L
define GARDROUND 0x7f
define
Hi,
I'm looking at the fp-bit.h, fp-bit.c, and try to understand the
floating point operation simulation. But there are many proper noun
hard to get the conception. Such as
NGARDS
IMPLICIT_1
Are there any details or documents about these?
Thanks
Eric.
Hello,
When I run the test suite for my port of gcc, there are some failures
caused by the optimization flag such as -O2/-O3, and the messages are
like,
930120-1.c: In function `f':
930120-1.c:138: internal compiler error: in verify_local_live_at_start, at flow.
c:546
It seems that because of
Hi,
Could you tell me what it means for 'test for excess errors'?
I run make check-gcc RUNTESTFLAGS='dg.exp' on my machine, and got
many failed tests for these errors on my porting gcc.
Do I need to setup something in order to run these testsuites for my port?
Besides DejaGnu and Tcl.
Thanks.
Hello,
I'd like to know since gcc implicitly call memset function to perform
optimization and my c libraries are unusable for now. Can I take
another way? Say don't call memset. How to do that?
Yours,
Eric.
Hello,
There are some papers talking about the gcc register allocation in the
summit proceedings. I'd like to know wether the graph coloring
allocator has been used in the gcc-3.4.4. Also, where can I find some
reference of the gcc register allocation, besides the source codes and
summit
Hi,
I guess it's about the gcc version. Gcc 3.4.4 does put the zero'd
variables into bss section. But I'd like to know if the older one does
it too. Say 2.95.2 19991024 (release)?
Thanks again.
Eric.
Hello,
For such a program,
int a=0;
int main(void)
{
...
}
We will see the compiler put the variable 'a' into the bss section.
That means that 'a' is a non-initialized variable. I don't know if this
is the gcc's strategy.
Happy Christmas.
Eric.
Yes for zero'd initialized variables, GCC puts them into BSS to say
space in the executable.
Thanks. But, you say 'to say space in the executable'. I'm not clear
what does it mean.
Eric.
Hello,
I have two questions about long long type.
Firstly, shall I support it in the machine.md file, or just leave it to libgcc?
Dose the libgcc support it if I don't implement in the machine.md file?
Secondly, is the long long type equal to DImode in the 32bit machine?
Such as adddi3, subdi3.
Hello,
Such a problem is difficult to find the reason. But can you give some
suggestion about the possible matter? This is the information on my
port. Thanks a lot.
dp-bit.c: In function `__muldf3':
dp-bit.c:957: error: unable to generate reloads for:
(insn 416 415 417 20 dp-bit.c:874 (set
Hello,
I have a doubt here about define_expand and would be appreciated for
your any help. The internals say,
Usually these statements prepare temporary registers for use as
internal operands in the RTL template, but they can also generate RTL
insns directly by calling routines such as emit_insn,
Hey,
It's very sorry. I have just found the answer just in the context.
It's a so stupid question.
DONE
Use the DONE macro to end RTL generation for the pattern. The only RTL
insns resulting from the pattern on this occasion will be those
already emitted by explicit calls to emit_insn within
(define_insn loadsf
[(set (match_operand:SF 0 register_operand =r)
(mem:SF (match_operand:SI 1 immediate_operand m)))]
This makes no sense, because the constraint means that the mem's
operand is an immediate before reload (and you want it to be a
register), and a mem after reload.
Hello, gcc
I think it's very interesting. I want to split a insn of loading SF
data through SI symbol, such as (set (reg:SF 5 $5) (mem/u/f:SF
(symbol_ref/u:SI (*$LC0.
I want to it firstly load the address into a register, then load the
data through
the register. So I define the insn as
Hello,
This is a strange problem. Why an operantion that should be a 'xorsi3'
format, yet it comes out with a 'scond' format. I have defined
'xorsi3' indeed. When I use the encluesive operantion '^', it is ok to
emit 'xorsi3'. When I compile the libgcc, it is not ok in _pack_df.o.
So what's the
It shouldn't. What is the actual error message?
Ian
Such as follows,
dp-bit.c: In function `__pack_d':
dp-bit.c:435: error: unrecognizable insn:
(insn 33 32 34 0 dp-bit.c:167 (set (reg:SI 159)
(ltu:SI (reg:SI 158 [ variable.class ])
(const_int 2 [0x2]))) -1 (insn_list 32
Hello,
Sorry, maybe it's not appropriate to put this question here. But I need help.
Porting gcc involves the relocation and BFD porting. I've added some
relocate type.
But after linked, the address is not correct. Are there any documents
about the relocation. And what should I do?
Thanks.
Eric
Hello,
Who can explains for me about the comparison insns in mips.md.
One question, why there is only define_expand patterns but no
define_insn. Supposed that I have a comparison instruction say 'cmp
%1, %2', should I implement define_insn patterns for comparison insns?
Here is a pattern
Hello,
I'd like to ask a question about target macros of registers. In
mips.h, the fixed registers are defined as follows:
/* By default, fix the kernel registers ($26 and $27), the global
pointer ($28) and the stack pointer ($29). This can change
depending on the command-line options.
Hi,
There is a little progress. I find it's concerned with gcc optimize.
When I change the option -O2 to -O0, it passes the make. Of
course, I'd like to say there are something wrong in my backend.
But, can somebody give me any clue?
Thanks.
Eric
Hello,
It's my new port of gcc. Libgcc is almost compiled for now, except
unwind-dw2-fde.c.
The error information is
'../../gcc-3.4.4/gcc/unwind-dw2-fde.c:968: internal compiler error:
in insert_save,
at caller-save.c:728
Please submit a full bug report'
Of course, there are some thing wrong
Hello,
When building Libgcc with new porting gcc, _floatdidf.o failed for
undefined symbol
_floatsidf. I've been told that _floatsidf is in fpbit.c as
_si_to_df.o. Then I modified the libgcc.mk and firstly build fpbit.
But _pack_df.o failed for undefined symbol
_ashldi3.o which is in libgcc2.c.
2005/9/15, Paul Brook [EMAIL PROTECTED]:
On Thursday 15 September 2005 10:59, Eric Fisher wrote:
Hello,
When building Libgcc with new porting gcc, _floatdidf.o failed for
undefined symbol
_floatsidf. I've been told that _floatsidf is in fpbit.c as
_si_to_df.o. Then I modified
Hi,
Still software floating point. :
Thanks for the help. Now I use soft-float to build libgcc, but _floatdidf.o
fails for Cannot branch to undefined symbol, __floatsidf. Should I define
floatsidf in md file? But I have no floating point registers.
Regards.
Eric
Thank you very much about the help.
Acctually, I have included fp-bit.c in libgcc.mk. But the order is not
right, I think. Because _si_to_df.o is after the _floatdidf.o. Also, how
to change _si_to_df.o to _floatsidf.o? In md file?
I'm wondering that maybe I needn't to implement libgcc2.a, but
Hi, gcc
I have to send the new mail again for the software floating point problem.
I need more details about it. 1) If I use software floating point, does I need
implement float mode insns in md file? Such as movsf, movdf. 2)How to
generate correct object files of libgcc2 of floating point
Hello,
Can anyone give me some suggestions about floating point implemention.
My new target doesn't have floating point register. But must I implement
the floating point operantion? Libgcc always fails on _floatdifi.o. But how
can I implement them?
Thanks a lot!
Eric.
Thank you very much for the suggestion. But are there any more details about
them and libgcc. I read the internals but find few information. I will be very
appreciated.
Best Regards.
Eric
If you are running the Linux kernel, then your target is not mips-elf,
but rather mips-linux-gnu. For that target, glibc or uclibc is
appropriate.
Exactly to say, the target is neither mips-elf nor mips-linux-gnu. I just
use mips-elf as the start. It's a new target with little endian and own
For a port then yes *-elf is easier to start, especially if you're
planning on going for an elf based operating system.
What about the mips port made you decide that you wanted to use that
as a guideline?
-eric
Firstly, there're some similar between them. Secondly, we're some familiar
hi,
Would you tell me which I should select to port for the new target?
The new target is like mips-elf. But I was told that glibc doesn't
support mips-elf well. Is it right?
Thanks for your help.
Eric
Thanks for your suggestion.
I think I need to port glibc. Because the new board is going to run
linux kernel. But I'm still not sure if glibc will support the new
target well. Thanks.
Eric
Hello,
Here is a question about porting gcc. After I modified machine.md and
other backend files, I can make cc1 and xgcc now. But libgcc2.o still
failed. I'd like to know does we must make libgcc2.o since the target
machine don't have float registers and 64bit registers.
Thanks a lot.
Eric
96 matches
Mail list logo