Fwd: Call for Topics and Sponsors -- Workshop on Open Source Development Tools 2015
* 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
* 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/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/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?
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
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?
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/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
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
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 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/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
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/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?
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?
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
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/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
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
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