Fwd: Call for Topics and Sponsors -- Workshop on Open Source Development Tools 2015

2015-06-25 Thread Mingjie Xing
*
Call for Topics and Sponsors

Workshop on Open Source Development Tools 2015
Beijing, China
Sep. 12, 2015 (TBD)
HelloGCC Work Group (www.hellogcc.org)
*
Open Source Development Tools Workshop is a meeting for open
source software developers. You can share your work, study and
learning experience of open source software development here.
Our main topics is open source development tools.

The content of topics can be:
* GNU toolchain (gcc, binutils, gdb, etc)
* Clang/LLVM toolchain
* Other tools of open source development, debug and simulation

The form of topics can be:
* the introduction of your own work
* the introduction of your work did in the past
* tutorial, experience and etc
* other forms of presentation, such as lightning talk

If you have some topics, please contact us:
* send email to hello...@freelists.org (need to subscribe
http://www.freelists.org/list/hellogcc first)
* login into freenode IRC #hellogcc room

Important Date:
* the deadline of topics and sponsors solicitation: Aug 1st, 2015

Previous Meetings:
* OSDT 2014: http://www.hellogcc.org/?p=33910
* HelloGCC 2013: http://www.hellogcc.org/?p=33518
* HelloGCC 2012: http://linux.chinaunix.net/hellogcc2012
* HelloGCC 2011: http://linux.chinaunix.net/hellogcc2011
* HelloGCC 2010: http://linux.chinaunix.net/hellogcc2010
* HelloGCC 2009: http://www.aka-kernel.org/news/hellogcc/index.html

If you want to sponsor us, we will very appreciate and please contact us via
hellogcc.workgr...@gmail.com


Call for Topics and Sponsors -- Workshop on Open Source Development Tools 2014

2014-04-24 Thread Mingjie Xing
*
Call for Topics and Sponsors

Workshop on Open Source Development Tools 2014 (i.e. HelloGCC Workshop)
Beijing, China
Sep. 13rd, 2014 (TBD)
HelloGCC Work Group (www.hellogcc.org)
*
Open Source Development Tools Workshop (i.e. HelloGCC Workshop) is
a meeting for open source software developers. You can share your work,
study and learning experience of open source software development here.
Our main topics is open source development tools.

The content of topics can be:
* GNU tool chains (gcc, gdb, binutils, etc)
* LLVM or other open source compilers
* other tools of open source development, debug and simulation

The form of topics can be:
* the introduction of your own work
* the introduction of your work did in the past
* tutorial, experience and etc
* other forms of presentation, such as lightning talk

If you have some topics, please contact us:
* send email to hello...@freelists.org (need to subscribe
http://www.freelists.org/list/hellogcc first)
* login into freenode IRC #hellogcc room

Important Date:
* the deadline of topics and sponsors solicitation: Aug 1st, 2014

Previous Meetings:
* HelloGCC 2013: http://www.hellogcc.org/?p=33518
* HelloGCC 2012: http://linux.chinaunix.net/hellogcc2012
* HelloGCC 2011: http://linux.chinaunix.net/hellogcc2011
* HelloGCC 2010: http://linux.chinaunix.net/hellogcc2010
* HelloGCC 2009: http://www.aka-kernel.org/news/hellogcc/index.html

If you want to sponsor us, we will very appreciate and please contact us via
hellogcc.workgr...@gmail.com


Re: A problem of our Gcc mirror

2011-02-14 Thread Mingjie Xing
2011/2/15 Harry Wei :
> Hi us,
>           When i want to download the mirror of Gcc 4.3  from the URL of 
> China it shows broken. The URL is: http://gcc.gnu.org/mirrors.html
>           You can click China's for a try.  Could anyone do for it. Or i want 
> to take the mirror on my website server(www.harrywei.org). I don't know 
> whether it can be well. Any idea?
>
>           Thanks.
>           Best Regards.
>           Harry Wei.
>

The mirror site in China is unavailable for a long time.  I believe it
is helpful if we can have one, though I don't know the requirements of
being a mirror.

Thanks,
Mingjie


Re: [MIPS] Test case dspr2-MULT is failed

2011-02-17 Thread Mingjie Xing
2011/2/18 Fu, Chao-Ying :
> I think your analysis is correct.  We should just delete 
> mips_order_regs_for_local_alloc()
> in mips.c and delete ADJUST_REG_ALLOC_ORDER in mips.h.
> Then, 3 accumulators can be used in dspr2-MULT.c and dspr2-MULTU.c now.  
> Thanks!

/* ADJUST_REG_ALLOC_ORDER is a macro which permits reg_alloc_order
   to be rearranged based on a particular function.  On the mips16, we
   want to allocate $24 (T_REG) before other registers for
   instructions for which it is possible.  */

#define ADJUST_REG_ALLOC_ORDER mips_order_regs_for_local_alloc ()

I'm just wondering if it Is appropriate to simply remove
ADJUST_REG_ALLOC_ORDER considering its comment.

Regards,
Mingjie


Does config.h include tm.h for now?

2011-02-21 Thread Mingjie Xing
Hi,

I notice that the internals document says "The header file config.h
includes tm.h and most compiler source files include config.h." in
"Target Description Macros and Functions" section.

This may need modification since config.h doesn't include tm.h for
now, if I'm not wrong.

Thanks,
Mingjie


HelloGcc 2011 Workshop call for topic speakers

2011-02-23 Thread Mingjie Xing
Hello,

In case someone is interested with it, I put the notice here.

Regards,
Mingjie

HelloGcc Working Group was set up in 2007 by Chinese free software
fans and developers in Beijing. With the goal of constructing a free,
open, sharing technical community, we not only discuss and learn about
GNU system tools(such as GCC, GDB, Binutils etc), provide helps on
related study and work, but also make our contributions to free
software community.

Every year, we hold a technical workshop in order to improve
communication among open source developers and fans. The activity will
be held in Oct. this year. We're calling for topic speakers now. As
soon as you prefer to give a technical report, welcome to contact us.
Topics includes, but not limited to,

* Introduction on your original work, or the work of others.
* Researching work or engineering work.
* Code explanation and program demonstration.
* etc,

We need to get the speaker's slides ahead of time and post it on the
Internet, with author's approval. It's better if you intend to provide
the text of articles, of course. The whole activity is free. We hope
to get some sponsorship to be used as the reward of speakers and the
support of the community development. Please send mail to following
address below if you have any questions on this workshop:

hellogcc.workgr...@gmail.com

Note: Topics in HelloGcc 2010 Workshop (http://hellogcc.blogbus.com/c3688812).
* Memory management mechanism and optimization
* Discussion on debugger's breakpoint mechanism
* Bintuils porting to embedded CPU
* Implementation and discussion on visualization of GCC
* How To Port GNU ToolChain
* Demo of Linux Kernel GDB tracepoint module

Topics in HelloGcc 2009 Workshop.

* Analyze and improve the program's data locality with GCC
* GCC Internals and Porting
* gdbproxy: An open source GDB stub for Blackfin
* GDB reverse debug and process record and replay target

You can find us on
* blog: http://hellogcc.blogbus.com
* mail list: http://www.freelists.org/archive/hellogcc
* irc: #hellogcc(freenode)


Is it a typo in treestruct.def?

2011-06-08 Thread Mingjie Xing
Hi,

I find the printable names are both "label decl" for TS_LABEL_DECL and
TS_TYPE_DECL in treestruct.def (trunk),

DEFTREESTRUCT(TS_LABEL_DECL, "label decl")
DEFTREESTRUCT(TS_RESULT_DECL, "result decl")
DEFTREESTRUCT(TS_CONST_DECL, "const decl")
DEFTREESTRUCT(TS_TYPE_DECL, "label decl")

Is it a typo?

Thanks,
Mingjie


Re: A visualization of GCC's passes, as a subway map

2011-07-11 Thread Mingjie Xing
2011/7/12 David Malcolm :
> For fun over the weekend I wrote a python script (using my
> gcc-python-plugin[1]) to render an SVG diagram of GCC's optimization
> passes (or, at least, based on my understanding of them).
>
> This diagram shows the various GCC optimization passes, arranged
> vertically, showing child passes via indentation.

Interesting.  I also have a plugin
(http://code.google.com/p/gcc-vcg-plugin) which can be used to dump
the gcc pass lists in vcg format.

Cheers,
Mingjie


CALL FOR PARTICIPATION: HelloGCC Workshop 2011

2011-09-17 Thread Mingjie Xing
HelloGCC 2011 : The 4th Workshop on Opensource Toolchain
   Beijing, China.  Sep. 24th.

Opensource toolchains are rapidly gaining importance in many areas
from super computing to embedded system.  The growth in popularity of
opensource toolchains is further driven by the growth in Linux and
derivatives such as Android, all of which rely on the opensource
toolchain.

The HelloGCC workshop attempts to bring together opensource toolchain
researchers and community hackers in China active in the various
toolchain components to share their views and strengthen the efforts
to contribute to world-wide community.

The 4th Workshop on Opensource Toolchain in China builds on the
success of the previous three editions beginning in 2008.  Please
refer this link (http://linux.chinaunix.net/hellogcc2011/ in Chinese)
for more details.  Topics of HelloGCC 2011 are about:

 - Introduction to GCC Backend.
Work flow of GCC, especially backend, is introduced by a simple and
concrete example.  Then, code generation and RTL template handling in
GCC are introduced.  Finally, the backend of GCC and LLVM are compared
to see the difference of these two major open source compilers.

 - GNU Tools for ARM Embedded Processors.
As part of maintainance and improvement of GCC for ARM architecture,
ARM will maintain a branch of GCC toolchain, especially for embedded
cores, such as ARM Cortex-R/Cortex-M profiles, and will periodically
build, test and release binary package from this branch. This session
will introduce some recommended work manner and key points of GCC to
be improved.  Beside that, the application and challenges of GCC in
embedded system will be discussed.

 - Performance analysis of binary code generation in TCG and LLVM.
Many simulators are using LLVM as the backend of binary translation.
Not only is got a lot of performance gain, compared with interpreter
execution mode,  but also quite portable
thanks to LLVM's multiple platform support.  In this session, based on
two simulator, Skyeye and Qemu, the benchmark performance result is
compared on x86 native code and host code generated by TCG and LLVM in
user mode.

 - New era of GCC : Plugin.
Since GCC 4.5, plugin has been supported.  Developers benefit a lot on
extending compiler functionality through writing compiler plugin.  As
a result, many third-party plugins appear.  Does plugin technology in
GCC indicate GCC comes to a new era? and what is the side effect of
plugin technology?  This session does not only cover these questions,
but also introduce the principle and implementation of GCC plugin, and
some existing plugin.  Finally, some stories on plugin will be shared
with you.

* CONTACT US
** hellogcc.workgr...@gmail.com
** blog: http://.hellogcc.org
** mail list: http://www.freelists.org/archive/hellogcc
** irc: #hellogcc on freenode

* Topics in last two workshops
HelloGcc 2010 Workshop (http://hellogcc.blogbus.com/c3688812 in Chinese).
 ** Memory management mechanism and optimization
 ** Discussion on debugger's breakpoint mechanism
 ** Bintuils porting to embedded CPU
 ** Implementation and discussion on visualization of GCC
 ** How To Port GNU ToolChain
 ** Demo of Linux Kernel GDB tracepoint module

HelloGcc 2009 Workshop.
 ** Analyze and improve the program's data locality with GCC
 ** GCC Internals and Porting
 ** gdbproxy: An open source GDB stub for Blackfin
 ** GDB reverse debug and process record and replay target

Thanks,
Mingjie


Odd things when change gcc from 3.3 to 3.4

2011-11-15 Thread Mingjie Xing
Hi,

Recently, I run into a very odd things when change my gcc toolchain
from 3.3.* to 3.4.*.  The compiled application such as a simple hello
printing, is unable to redirect into a file.

$ ./hello
hello
$ ./hello > log
$ cat log
$

It's a cross toolchain, using binutils-2.16, glibc-2.3.2, with the
target mipsel-linux.

It's really odd.  Any suggestions?

Thanks,
Mingjie


Re: Odd things when change gcc from 3.3 to 3.4

2011-11-15 Thread Mingjie Xing
2011/11/15 Mingjie Xing :
> Hi,
>
> Recently, I run into a very odd things when change my gcc toolchain
> from 3.3.* to 3.4.*.  The compiled application such as a simple hello
> printing, is unable to redirect into a file.

Here's more information generating by strace.

$ strace ./hello.gcc-3.3 > log
execve("./hello..gcc-3.3", ["./hello..gcc-3.3"], [/* 36 vars */]) = 0
uname({sys="Linux", node="loongson.redflag-linux.com", ...}) = 0
fcntl64(0, F_GETFD) = 0
fcntl64(1, F_GETFD) = 0
fcntl64(2, F_GETFD) = 0
geteuid()   = 0
getuid()= 0
getegid()   = 0
getgid()= 0
brk(0)  = 0x10008000
brk(0x1000c000) = 0x1000c000
fstat64(1, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
old_mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x2aaa8000
write(1, "hello\n"..., 6)   = 6
munmap(0x2aaa8000, 65536)   = 0
exit_group(0)   = ?

$ strace ./hello.gcc-3.4 > log
execve("./hello.gcc-3.4", ["./hello.gcc-3.4"], [/* 36 vars */]) = 0
uname({sys="Linux", node="loongson.redflag-linux.com", ...}) = 0
fcntl64(0, F_GETFD) = 0
fcntl64(1, F_GETFD) = 0
fcntl64(2, F_GETFD) = 0
geteuid()   = 0
getuid()= 0
getegid()   = 0
getgid()= 0
brk(0)  = 0x10008000
brk(0x1000c000) = 0x1000c000
fstat64(1, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
old_mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x2aaa8000
exit_group(0)   = ?

We can see that the latter program doesn't run "write(1, "hello\n"...,
6) " at all.

Thanks
Mingjie


Re: struggling with make inside GCC MELT

2012-01-11 Thread Mingjie Xing
2012/1/10 Ian Lance Taylor :
> Stamp files in make work like this:
>
> FILE: STAMP-FILE; @true
> STAMP-FILE: DEPENDENCIES
>        commands to create FILE.tmp
>        move-if-change FILE.tmp FILE
>        touch $@
>
> What this says is: if any of DEPENDENCIES change, then run the commands
> to create FILE.tmp.  The move-if-change shell script then compares
> FILE.tmp and FILE; if they are different, it moves FILE.tmp to FILE,
> updating the timestamp.  If they are not different, FILE is left
> unchanged, with the same timestamp.
>
> The effect is that anything which depends on FILE is only rebuilt if the
> contents of FILE changes.

Hmm, will it work to just write as

FILE: DEPENDENCIES
commands to create FILE.tmp
move-if-change FILE.tmp FILE

> Note that everything I show above is required.  A naive approach would
> omit the "; @true" but it is necessary.
>
> Ian

Then what the role here "; @true"  play? I'm still confused by the usage.

Thanks for explanation.

Mingjie


[gccint-zh] GCC Internals Chinese Translation Project

2012-02-06 Thread Mingjie Xing
Hello,

We (gccint-zh contributors) started to translate GCC internals
document into Chinese several years ago.  The project has been put on
svn (http://code.google.com/p/gccint-zh), which is based on GCC
internals ".texi" files, and can be browsed online
(http://www.hellogcc.org/gccint).  So far, most of the contents have
been translated, and the work is still in process.  We are planning to
merge the document from GCC trunk and update the translation
regularly.

I'm wondering whether an introduction of this project with a link can
be put on GCC wiki, so that more people can know it and join us.
Thanks.

Regards,
Mingjie


Re: [gccint-zh] GCC Internals Chinese Translation Project

2012-02-06 Thread Mingjie Xing
2012/2/7 Mingjie Xing :
> I'm wondering whether an introduction of this project with a link can
> be put on GCC wiki, so that more people can know it and join us.
> Thanks.

Now, around 80% is translated. We are still translating the rest and
periodically sync from official gcc tree.

This project is quite useful to GCC hackers whose mother language is
Chinese, even they can read English.  Finally, it is beneficial to gcc
community.  I propose that 1) add a link on GCC wiki to
http://www.hellogcc.org/gccint, 2) put our compiled gccint-zh htmls to
gcc.gnu.org, and update it periodically.  What do you think?

Note that we translate gccint as a hobby in weekend, and will never
use this Chinese version of gccint for any commercial purpose.

Thanks,
Mingjie


Change macro SHIFT_COUNT_TRUNCATED to target hook TARGET_SHIFT_COUNT_TRUNCATED?

2010-08-24 Thread Mingjie Xing
Hello,

I have a problem about the definition of SHIFT_COUNT_TRUNCATED. MIPS
is a SHIFT_COUNT_TRUNCATED target, and has it defined as 1. While
loongson-specific vector insns are not SHIFT_COUNT_TRUNCATED. That
means that the macro depends on the machine mode. One simple
resolution may be,

  #define SHIFT_COUNT_TRUNCATED (TARGET_LOONGSON_2EF ? 0 : 1)

but this will disable the common optimization for loongson target.
Another way is to use a target hook to handle this problem, but this
requires many changes.

I'd like to ask suggestions for this.

Thanks,
Mingjie


Miss head file diagnostic.h in plugin.h?

2010-11-26 Thread Mingjie Xing
Hi,

When I try to build my plugin, I get such errors,

In file included from ../../gcc-vcg-plugin/vcg-plugin/gcc-function.c:27:0:
/home/eric/install/trunk/lib/gcc/i686-pc-linux-gnu/4.6.0/plugin/include/plugin.h:35:65:
error: expected ‘)’ before ‘*’ token
In file included from ../../gcc-vcg-plugin/vcg-plugin/vcg-plugin.h:27:0,
 from ../../gcc-vcg-plugin/vcg-plugin/gcc-function.c:30:
/home/eric/install/trunk/lib/gcc/i686-pc-linux-gnu/4.6.0/plugin/include/gimple.h:31:26:
fatal error: hard-reg-set.h: No such file or directory
compilation terminated.

The first error occurs due to that using diagnostic_context in the
plugin.h without including diagnostic.h. The second error is about
missing hard-reg-set.h.

GCC trunk revision: 167194

Thanks,
Mingjie


[MIPS] Test case dspr2-MULT is failed

2010-12-29 Thread Mingjie Xing
Hi,

There are two test cases failed when run 'make check-gcc
RUNTESTFLAGS="mips.exp"'.  The log is,

Executing on host: /home/xmj/tools/build-test-trunk-mips/gcc/xgcc
-B/home/xmj/tools/build-test-trunk-mips/gcc/
/home/xmj/tools/test-trunk/gcc/testsuite/gcc.target/mips/dspr2-MULT.c
 -DNOMIPS16=__attribute__((nomips16)) -mabi=32 -mips32r2 -mgp32 -O2
-mdspr2 -mtune=74kc -ffixed-hi -ffixed-lo -S  -o dspr2-MULT.s
(timeout = 300)
PASS: gcc.target/mips/dspr2-MULT.c (test for excess errors)
PASS: gcc.target/mips/dspr2-MULT.c scan-assembler \tmult\t
PASS: gcc.target/mips/dspr2-MULT.c scan-assembler ac1
FAIL: gcc.target/mips/dspr2-MULT.c scan-assembler ac2
Executing on host: /home/xmj/tools/build-test-trunk-mips/gcc/xgcc
-B/home/xmj/tools/build-test-trunk-mips/gcc/
/home/xmj/tools/test-trunk/gcc/testsuite/gcc.target/mips/dspr2-MULTU.c
  -DNOMIPS16=__attribute__((nomips16)) -mabi=32 -mips32r2 -mgp32 -O2
-mdspr2 -mtune=74kc -ffixed-hi -ffixed-lo -S  -o dspr2-MULTU.s
(timeout = 300)
PASS: gcc.target/mips/dspr2-MULTU.c (test for excess errors)
PASS: gcc.target/mips/dspr2-MULTU.c scan-assembler \tmultu\t
PASS: gcc.target/mips/dspr2-MULTU.c scan-assembler ac1
FAIL: gcc.target/mips/dspr2-MULTU.c scan-assembler ac2

Is it a bug?

Thanks,
Mingjie


Re: [MIPS] Test case dspr2-MULT is failed

2011-01-12 Thread Mingjie Xing
2011/1/7 Chung-Lin Tang :
> I analyzed this testcase regression a while earlier; the direct cause of
> this is due to mips_order_regs_for_local_alloc(), which now serves as
> MIPS' ADJUST_REG_ALLOC_ORDER macro.
>
> The mips_order_regs_for_local_alloc() function seems to be written for
> the old local-alloc.c, still left as the deprecated
> ORDER_REGS_FOR_LOCAL_ALLOC macro after the transition to IRA (actually
> not called at all during then), and relatively recently 'revived' after
> a patch by Bernd that created the ADJUST_REG_ALLOC_ORDER macro went in.
>
> So you have a local-alloc.c heuristic working in IRA, which seemed to
> cause these regressions.
>
> Removing mips_order_regs_for_local_alloc() will let this testcase pass;
> of course the real fix should be to review the MIPS reg-ordering logic,
> left for you MIPS people...
>
> Chung-Lin
>

As I can see, mips_order_regs_for_local_alloc() is only used to
reorder $24 (T_REG) for MIPS16.  Since current definition of
REG_ALLOC_ORDER for IRA is not {0,1,2,...} any more, the old loop
code,

  for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
reg_alloc_order[i] = i;

in mips_order_regs_for_local_alloc() seems inadequate.  Because this
will override the definition of REG_ALLOC_ORDER.

Anyway, when I tried to rewrite the function to keep the register
order, the testcase is passed, but I can't see the speedup on my port.

Thanks,
Mingjie



proposal to turn on some warnings by default

2014-02-26 Thread Mingjie Xing
Hello,

I'm wondering if it's a good idea to turn on some warnings by default
(or even promote them to error), such as -Wreturn-type on C.  This
would help programmers to avoid some mistakes.

Regards,
Mingjie


HelloGCC 2012 Workshop calls for topic speakers

2012-09-17 Thread Mingjie Xing
Hello,

HelloGcc Working Group was set up in 2007 by Chinese free software
fans and developers in Beijing. With the goal of constructing a free,
open, sharing technical community, we not only discuss and learn about
GNU toolchains (such as GCC, GDB, Binutils etc) and QEMU, LLVM, etc,
provide helps on related study and work, but also make our
contributions to free software community.

Every year, we hold a technical workshop in order to improve
communication among open source developers and fans. The activity will
be held in November  this year. We're calling for topic speakers now.
As soon as you prefer to give a technical report, welcome to contact
us. Topics includes, but not limited to,

* Introduction on your original work, or the work of others.
* Researching work or engineering work.
* Code explanation and program demonstration.
* etc,

We need to get the speaker's slides ahead of time and post it on the
Internet, with author's approval. It's better if you intend to provide
the text of articles, of course. The whole activity is free. We hope
to get some sponsorship to be used as the reward of speakers and the
support of the community development. Please send mail to following
address below if you have any questions on this workshop:

hello...@freelists.org,

Note: Topics in HelloGCC 2011 Workshop
* Introduction to GCC Backend
* GNU Tools for ARM Embedded Processors
* Displaced stepping and its implementation for Thumb-2.
* Performance of binary translation between TCG and LLVM.
* The new era of GCC : Plugin

Topics in HelloGcc 2010 Workshop
* Memory management mechanism and optimization
* Discussion on debugger's breakpoint mechanism
* Bintuils porting to embedded CPU
* Implementation and discussion on visualization of GCC
* How To Port GNU ToolChain
* Demo of Linux Kernel GDB tracepoint module

Topics in HelloGcc 2009 Workshop.

* Analyze and improve the program's data locality with GCC
* GCC Internals and Porting
* gdbproxy: An open source GDB stub for Blackfin
* GDB reverse debug and process record and replay target

You can find us on
* blog: http://www.hellogcc.org
* mail list: http://www.freelists.org/archive/hellogcc
* irc: #hellogcc on freenode