Re: role of dump_file notably for/in plugins?
Hello, >From what I understand, the question is not really how do we dump passes but what a pass (from a plugin or not) should dump? So the question is what do you expect from a dump file? Do you expect to have the full internal representation of the code after the end of the pass? For many dump files, we just get this (lower,cfg, ssa...). Or do you expect something more oriented on what the pass did? Like "this pass remove three unreable basicblocks, they were located here, here and here"? Maybe there is no particular rules and it just depends of the pass. However I guess there should some clear rules about this. Dump files can be quite useful to understand the compiler behavior (sometimes it is a huge task to search using the debugger). Thanks. Pierre Vittet
gcc-4.5-20110901 is now available
Snapshot gcc-4.5-20110901 is now available on ftp://gcc.gnu.org/pub/gcc/snapshots/4.5-20110901/ and on various mirrors, see http://gcc.gnu.org/mirrors.html for details. This snapshot has been generated from the GCC 4.5 SVN branch with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch revision 178427 You'll find: gcc-4.5-20110901.tar.bz2 Complete GCC MD5=c1e222654db6e193ef65953ee02d SHA1=855f49dd368949a49f4f2fe3544ec72566f3a4ca Diffs from 4.5-20110825 are available in the diffs/ subdirectory. When a particular snapshot is ready for public consumption the LATEST-4.5 link is updated and a message is sent to the gcc list. Please do not use a snapshot before it has been announced that way.
Wanted gcov literate person for reviewer
Hi, RTEMS is participating in the ESA Summer of Code in Space. We have a student who is enhancing the RTEMS coverage tool[1] to produce gcno files. Is there someone who feels competent in this area who could help review and guide this student? I expect this will be a light duty activity. Thanks. [1] covoar takes as input whatever trace or coverage file is available -- usually from CPU simulators. This information is at the level of address executed or branch taken/not taken. It can merge multiple program runs. It produces a variety of reports but the focus is on which code ranges are not executed and which branches were not fully executed. The reports correlate the assembly language with source code. For example, reports for the sparc/erc32 are at http://www.rtems.org/ftp/pub/rtems/people/joel/coverage/erc32/erc32.html -- Joel Sherrill, Ph.D. Director of Research& Development joel.sherr...@oarcorp.comOn-Line Applications Research Ask me about RTEMS: a free RTOS Huntsville AL 35805 Support Available (256) 722-9985
Is VRP is too conservative to identify boolean value 0 and 1?
Hi, For the following small case, int f(int i, int j) { if (i==1 && j==2) return i; else return j; } with -O2 option, GCC has vrp2 dump like below, == Value ranges after VRP: i_1: VARYING i_2(D): VARYING D.1249_3: [0, +INF] j_4(D): VARYING D.1250_5: [0, +INF] D.1251_6: [0, +INF] j_10: [2, 2] EQUIVALENCES: { j_4(D) } (1 elements) Removing basic block 3 f (int i, int j) { _Bool D.1251; _Bool D.1250; _Bool D.1249; : D.1249_3 = i_2(D) == 1; D.1250_5 = j_4(D) == 2; D.1251_6 = D.1250_5 & D.1249_3; if (D.1251_6 != 0) goto ; else goto ; : : # i_1 = PHI <1(3), j_4(D)(2)> return i_1; } Variable D.1249_3, D.1250_5 and D.1251_6 should be boolean values, so the their value ranges should be D.1249_3: [0, 1] D.1250_5: [0, 1] D.1251_6: [0, 1] So why current VRP can't find out this value range? I'm asking this question because the optimizations in back-end need this info to do advanced optimization. Thanks, -Jiangning
Re: Is VRP is too conservative to identify boolean value 0 and 1?
On Thu, Sep 1, 2011 at 10:58 PM, Jiangning Liu wrote: > D.1249_3: [0, 1] > D.1250_5: [0, 1] > D.1251_6: [0, 1] Those are equivalent to [0, MAX] as _Bool only has two different values, 0 and 1 (MAX). Can you explain more about the optimization which you are working on that needs the ranges as (int)[0,1] rather than (_Bool)[0,MAX] ? Thanks, Andrew Pinski