[PATCH, i386]: Fix PR51109, symbol size in scheduler state machine is reduced

2012-09-27 Thread Gopalasubramanian, Ganesh
Hi All, This is a fix for PR 51109. There are three changes 1. Microcoded instructions are considered as single issue instructions and are therefore issued to a separate execution unit. 2. The multiplier unit is attached to execution unit 1 (ieu1). Since ieu is handled as a separate

Re: [PR54551] global dead debug pseudo tracking in fast-dce

2012-09-27 Thread Jakub Jelinek
On Tue, Sep 25, 2012 at 07:21:04PM -0300, Alexandre Oliva wrote: > On Sep 25, 2012, Jakub Jelinek wrote: > > > (the other alternative would be to use mode in the hash function etc., > > but if usually the same pseudo has the same mode everywhere, then the above > > should be good enough). > > AF

Re: [CPP] Add pragmas for emitting diagnostics

2012-09-27 Thread Florian Weimer
On 09/26/2012 10:19 PM, Tom Tromey wrote: "Florian" == Florian Weimer writes: Florian> This patch adds support for #pragma GCC warning and #pragma GCC Florian> error. These pragmas can be used from preprocessor macros, Florian> unlike the existing #warning and #error directives. Library Flori

[PATCH] Fix a typo in gcov.texi

2012-09-27 Thread Marek Polacek
Instead of -profile-dir, we want -fprofile-dir, I'm afraid. Ok? 2012-09-27 Marek Polacek * doc/gcov.texi (Gcov Data Files): Fix a typo. --- gcc/doc/gcov.texi.mp2012-09-27 11:55:45.658201583 +0200 +++ gcc/doc/gcov.texi 2012-09-27 11:56:05.335252754 +0200 @@ -555,7 +555,7 @@

Re: [PATCH] Fix a typo in gcov.texi

2012-09-27 Thread Jakub Jelinek
On Thu, Sep 27, 2012 at 11:59:38AM +0200, Marek Polacek wrote: > Instead of -profile-dir, we want -fprofile-dir, I'm afraid. Ok? > > 2012-09-27 Marek Polacek > > * doc/gcov.texi (Gcov Data Files): Fix a typo. Ok. --profile-dir=/tmp/ also works, but not -profile-dir=/tmp/. > --- gcc/d

[C++ PATCH] Nit fix in build_new_1

2012-09-27 Thread Jakub Jelinek
Hi! All INTEGER_CSTs are TREE_CONSTANT, I don't see the point in testing that. Ok for trunk? 2012-09-27 Jakub Jelinek * init.c (build_new_1): Don't test TREE_CONSTANT of INTEGER_CST. --- gcc/cp/init.c.jj2012-09-25 11:59:43.0 +0200 +++ gcc/cp/init.c 2012-09-

Re: [C++ PATCH] Nit fix in build_new_1

2012-09-27 Thread Richard Guenther
On Thu, Sep 27, 2012 at 12:44 PM, Jakub Jelinek wrote: > Hi! > > All INTEGER_CSTs are TREE_CONSTANT, I don't see the point > in testing that. Ok for trunk? Ok. Thanks, Richard. > 2012-09-27 Jakub Jelinek > > * init.c (build_new_1): Don't test TREE_CONSTANT > of INTEGER_CST.

[C++ Patch / RFC] PR 51422

2012-09-27 Thread Paolo Carlini
Hi, almost forgot that a few weeks ago I spent some time on this PR... The issue is simple: in these repeated error conditions we ICE on the gcc_assert in is_normal_capture_proxy: decl is a VAR_DECL with an error_mark_node as TREE_TYPE. Then checking error_operand_p (decl) in is_capture_prox

Re: [PATCH] Add option for dumping to stderr (issue6190057)

2012-09-27 Thread Sharad Singhai
Thanks for the review. A couple of comments inline: > Some minor issues: > > * c/c-decl.c (c_write_global_declarations): Use different method to > determine if the dump has ben initialized. > * cp/decl2.c (cp_write_global_declarations): Ditto. > * testsuite/gcc.targ

Re: Merge C++ conversion into trunk (4/6 - hash table rewrite)

2012-09-27 Thread Michael Matz
Hi, On Wed, 26 Sep 2012, Lawrence Crowl wrote: > > A lower-case type name indicates to me a non-changing type, > > i.e. nothing that depends on a template. In C we only had > > such types so we used lower-case names everywhere. With C++ > > and templates I think we should start using upper case

Re: Merge C++ conversion into trunk (4/6 - hash table rewrite)

2012-09-27 Thread Gabriel Dos Reis
On Thu, Sep 27, 2012 at 7:12 AM, Michael Matz wrote: > (And if they aren't, then again, we did something too > complicated with the switch to C++). or we are doing something by insisting not to use standard notation.

Re: [PATCH, i386]: Fix PR51109, symbol size in scheduler state machine is reduced

2012-09-27 Thread Uros Bizjak
On Thu, Sep 27, 2012 at 10:30 AM, Gopalasubramanian, Ganesh wrote: > This is a fix for PR 51109. > > There are three changes > > 1. Microcoded instructions are considered as single issue instructions > and are therefore issued to a separate execution unit. > 2. The multiplier unit is a

[v3] libstdc++/54727

2012-09-27 Thread Paolo Carlini
Hi, unbreak Mozilla build. Tested x86_64-linux. Thanks, Paolo. / 2012-09-27 Paolo Carlini PR libstdc++/54727 * config/cpu/i486/opt/bits/opt_random.h: Avoid UINT64_C. Index: config/cpu/i486/opt/bits/opt_random.h

[PATCH] Correct handling of gcc-[ar|nm|ranlib] exit codes

2012-09-27 Thread Meador Inge
Hi All, The gcc-[ar|nm|ranlib] LTO utils use 'pex_one' to spawn the wrapped binutils program. However, currently it is blindly returning the value of the 'err' parameter for the exit code. According the documentation [1] 'err' is only set for an error return and 'status' is only set for a succes

Re: [PATCH, rtl-optimization]: Fix PR54457, [x32] Fail to combine 64bit index + constant

2012-09-27 Thread Uros Bizjak
On Wed, Sep 26, 2012 at 11:22 PM, Eric Botcazou wrote: >> I agree (subreg:M (op:N A C) 0) to (op:M (subreg:N (A 0)) C) is >> a good transformation, but why do we need to handle as special >> the case where the subreg is itself the operand of a plus or minus? >> I think it should happen regardless

[PATCH] Shrink symtab_node_base

2012-09-27 Thread Richard Guenther
The following patch shrinks symtab_node_base from 104 bytes to 88 bytes (on x86_64) by re-ordering and packing fields. Bootstrap & regtest pending. Richard. 2012-09-27 Richard Guenther * cgraph.h (symtab_node_base): Re-order and pack fields. Index: gcc/cgraph.h

Re: [PATCH] Correct handling of gcc-[ar|nm|ranlib] exit codes

2012-09-27 Thread Richard Guenther
On Thu, Sep 27, 2012 at 3:01 PM, Meador Inge wrote: > Hi All, > > The gcc-[ar|nm|ranlib] LTO utils use 'pex_one' to spawn the wrapped binutils > program. However, currently it is blindly returning the value of the 'err' > parameter for the exit code. According the documentation [1] 'err' is only

Re: [PATCH, rtl-optimization]: Fix PR54457, [x32] Fail to combine 64bit index + constant

2012-09-27 Thread Richard Sandiford
Uros Bizjak writes: > On Wed, Sep 26, 2012 at 11:22 PM, Eric Botcazou wrote: >>> I agree (subreg:M (op:N A C) 0) to (op:M (subreg:N (A 0)) C) is >>> a good transformation, but why do we need to handle as special >>> the case where the subreg is itself the operand of a plus or minus? >>> I think i

[PATCH] Prefer to use v?{and,or,xor}p[sd] for float vectors (PR target/54716)

2012-09-27 Thread Jakub Jelinek
Hi! As discussed in the PR, the only way how to request a vector float/double logical operation in C/C++ code without intrinsics is by casting to integer vectors temporarily, but we then generate v?p{and,or,xor} instead of *p[sd]. The following patch changes that if either both of the operands of

Re: [testsuite] gcc.target/arm/unsigned-extend-1.c: omit -march option

2012-09-27 Thread Mike Stump
On Sep 26, 2012, at 4:58 PM, Janis Johnson wrote: > Test gcc.target/arm/unsigned-extend-1.c specifies option -march=armv6, > which causes compile failures when that option conflicts with other > test flags, such as for multilibs. It can also be overridden by other > test flags. The test is scan

Re: [PATCH] Add option for dumping to stderr (issue6190057)

2012-09-27 Thread Xinliang David Li
On Thu, Sep 27, 2012 at 4:35 AM, Sharad Singhai wrote: > Thanks for the review. A couple of comments inline: > >> Some minor issues: >> >> * c/c-decl.c (c_write_global_declarations): Use different method to >> determine if the dump has ben initialized. >> * cp/decl2.c (cp_w

[Patch,avr]: Ad PR rtl-optimization/52543: Undo the MEM->UNSPEC hack

2012-09-27 Thread Georg-Johann Lay
PR52543 required to represent a load from non-generic address spaces as UNSPEC instead of as MEM to avoid a gross code bloat. http://gcc.gnu.org/PR52543 lower-subreg's cost model is still broken: It assumes that any loads from MEM are from the generic address space and does not care for address s

Re: [PATCH] Prefer to use v?{and,or,xor}p[sd] for float vectors (PR target/54716)

2012-09-27 Thread Richard Henderson
On 09/27/2012 08:24 AM, Jakub Jelinek wrote: > Hi! > > As discussed in the PR, the only way how to request a vector float/double > logical operation in C/C++ code without intrinsics is by casting to integer > vectors temporarily, but we then generate v?p{and,or,xor} instead of *p[sd]. > > The fol

Re: [PATCH, AArch64] Handle symbol + offset more effectively

2012-09-27 Thread Marcus Shawcroft
On 25/09/12 14:45, Ian Bolton wrote: Hi all, This patch corrects what seemed to be a typo in expand_mov_immediate in aarch64.c, where we had || instead of an&& in our original code. if (offset != const0_rtx && (targetm.cannot_force_const_mem (mode, imm) || (can_create_pseudo_

Re: add typedef printers to libstdc++

2012-09-27 Thread Tom Tromey
Jonathan> Please go ahead and commit, thanks, Tom! Thanks. The needed gdb patches are still pending, so I plan to wait until those go in before committing to libstdc++. I hope it will be next week sometime. Tom

[C++ Patch] PR 52764

2012-09-27 Thread Paolo Carlini
Hi, C++11, in 18.4.1/2, is very clear that __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS play no role in C++11 and the macros are provided unconditionally. The below implements such requirement in the way recommended on the audit trail, thus changing both stdint-gcc.h and stdint-wrap.h to c

[PATCH v2, rtl-optimization]: Fix PR54457, [x32] Fail to combine 64bit index + constant

2012-09-27 Thread Uros Bizjak
On Thu, Sep 27, 2012 at 4:25 PM, Richard Sandiford wrote: I agree (subreg:M (op:N A C) 0) to (op:M (subreg:N (A 0)) C) is a good transformation, but why do we need to handle as special the case where the subreg is itself the operand of a plus or minus? I think it should happen

Re: [PATCH v2, rtl-optimization]: Fix PR54457, [x32] Fail to combine 64bit index + constant

2012-09-27 Thread Paul_Koning
On Sep 27, 2012, at 2:04 PM, Uros Bizjak wrote: > > > > I agree (subreg:M (op:N A C) 0) to (op:M (subreg:N (A 0)) C) is > a good transformation, but why do we need to handle as special > the case where the subreg is itself the operand of a plus or minus? > I think it should hap

Re: [PATCH v2, rtl-optimization]: Fix PR54457, [x32] Fail to combine 64bit index + constant

2012-09-27 Thread Uros Bizjak
On Thu, Sep 27, 2012 at 8:08 PM, wrote: >> I agree (subreg:M (op:N A C) 0) to (op:M (subreg:N (A 0)) C) is >> a good transformation, but why do we need to handle as special >> the case where the subreg is itself the operand of a plus or minus? >> I think it should happen regardle

Re: [PATCH v2, rtl-optimization]: Fix PR54457, [x32] Fail to combine 64bit index + constant

2012-09-27 Thread Jakub Jelinek
On Thu, Sep 27, 2012 at 08:04:58PM +0200, Uros Bizjak wrote: > After some off-line discussion with Richard, attached is v2 of the patch. > > 2012-09-27 Uros Bizjak > > PR rtl-optimization/54457 > * simplify-rtx.c (simplify_subreg): > Simplify (subreg:SI (op:DI ((x:DI) (y:

Re: Merge C++ conversion into trunk (4/6 - hash table rewrite)

2012-09-27 Thread Lawrence Crowl
On 9/27/12, Michael Matz wrote: > On Wed, 26 Sep 2012, Lawrence Crowl wrote: > > > A lower-case type name indicates to me a non-changing type, > > > i.e. nothing that depends on a template. In C we only had > > > such types so we used lower-case names everywhere. With C++ > > > and templates I t

Patch committed: Fix crash in libbacktrace if no debug info

2012-09-27 Thread Ian Lance Taylor
When changing the libbacktrace interface to avoid using mutexes, I missed a spot. This caused libbacktrace to crash on a binary with no debug info. This patch fixes the problem. Bootstrapped and ran libbacktrace tests. Committed to mainline. Ian 2012-09-27 Ian Lance Taylor PR oth

PATCH: [4.6 Regression] 22_locale/num_put/put/char/9780-2.cc

2012-09-27 Thread H.J. Lu
Hi, This patch backports revision 182385 from trunk to 4.6 branch. Tested on Linux/x86-64. OK to install? Thanks. H.J. -- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index aa94768..ff4b13e 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2012

Re: PATCH: [4.6 Regression] 22_locale/num_put/put/char/9780-2.cc

2012-09-27 Thread Paolo Carlini
On 09/27/2012 10:33 PM, H.J. Lu wrote: Hi, This patch backports revision 182385 from trunk to 4.6 branch. Tested on Linux/x86-64. OK to install? Ok, thanks. But we are in 2012: let's simply have 2004-2012 as Copyright years. Paolo.

Re: [PATCH v2, rtl-optimization]: Fix PR54457, [x32] Fail to combine 64bit index + constant

2012-09-27 Thread Richard Sandiford
Jakub Jelinek writes: > On Thu, Sep 27, 2012 at 08:04:58PM +0200, Uros Bizjak wrote: >> After some off-line discussion with Richard, attached is v2 of the patch. >> >> 2012-09-27 Uros Bizjak >> >> PR rtl-optimization/54457 >> * simplify-rtx.c (simplify_subreg): >> Simplif

Re: PATCH: [4.6 Regression] 22_locale/num_put/put/char/9780-2.cc

2012-09-27 Thread H.J. Lu
On Thu, Sep 27, 2012 at 1:51 PM, Paolo Carlini wrote: > On 09/27/2012 10:33 PM, H.J. Lu wrote: >> >> Hi, >> >> This patch backports revision 182385 from trunk to 4.6 branch. Tested >> on Linux/x86-64. OK to install? > > Ok, thanks. But we are in 2012: let's simply have 2004-2012 as Copyright > y

[google/4_7] Patch committed: backport the location_block patch from trunk

2012-09-27 Thread Dehao Chen
I have backported the following patches from trunk to google-4_7: r191494, r191510, r191614, r191669, r191680, r191706, r191747, r191759, r191779, r191810. Combine location_t and block into an integer, so that these two building blocks of debug info are kept consistent during backend optimization

Re: [PATCH] Rs6000 infrastructure cleanup (switches), revised patch #2

2012-09-27 Thread Michael Meissner
This patch fixes a long standing bug that David noticed, namely if you don't use -mcpu=, the target options that are set by the configuration .h files in TARGET_DEFAULT are cleared if they are in POWERPC_MASKS. Note, if you configure the compiler using --with-cpu=, it provides a default cpu, so us

vec_cond_expr adjustments

2012-09-27 Thread Marc Glisse
Hello, I have been experimenting with generating VEC_COND_EXPR from the front-end, and these are just a couple things I noticed. 1) optabs.c requires that the first argument of vec_cond_expr be a comparison, but verify_gimple_assign_ternary only checks is_gimple_condexpr, like for COND_EXPR.

RFC: LRA for x86/x86-64 [0/9]

2012-09-27 Thread Vladimir Makarov
Originally I was to submit LRA at the very beginning of stage1 for gcc4.9 as it was discussed on this summer GNU Tools Cauldron. After some thinking, I've decided to submit LRA now but only switched on for *x86/x86-64* target. The reasons for that are o I am already pretty confident in LRA f

RFC: LRA for x86/x86-64 [1/9]

2012-09-27 Thread Vladimir Makarov
The following patch adds a new argument for function alter_subreg. LRA will sometime call alter_subreg with different argument value. 2012-09-27 Vladimir Makarov * output.h (alter_subreg): Add new argument. * dbxout.c (dbxout_symbol_location): Pass new argument to alter_subreg

RFC: LRA for x86/x86-64 [2/9]

2012-09-27 Thread Vladimir Makarov
LRA outputs a lot debug information about insns. I found that using slim insn/rtl presentation helps a lot for LRA debuging. The following patch makes slim presentation printing functions visible to LRA. It also implements one more such function. 2012-09-27 Vladimir Makarov * rtl.h (

RFC: LRA for x86/x86-64 [3/9]

2012-09-27 Thread Vladimir Makarov
LRA creates a lot of new pseudos. So the following patch implements ahead allocation reg info information which is important for LRA compilation speed. 2012-09-27 Vladimir Makarov * reginfo.c (max_regno_since_last_resize): New. (reg_preferred_class, reg_alternate_class): Add assert.

RFC: LRA for x86/x86-64 [4/9]

2012-09-27 Thread Vladimir Makarov
The following patch implements hooks (and their default values) will be used by LRA. 2012-09-27 Vladimir Makarov * target.h: Include tm.h. * targhooks.h (default_lra_p): Declare. (default_register_bank): Ditto. (default_different_addr_displacement_p): Ditto. * targhooks.

RFC: LRA for x86/x86-64 [5/9]

2012-09-27 Thread Vladimir Makarov
The following patch mostly prepares some data from IRA which will be used by LRA. It is done by moving some definitions fro ira-int.h to ira.h. New data reg_class_subset is generated in IRA for LRA. New functions dealing with equivs are created. They will be used by LRA. Some code of IRA is

RFC: LRA for x86/x86-64 [6/9]

2012-09-27 Thread Vladimir Makarov
The following patch modifies some code in the rest of compiler for correct work of LRA. The code works the same way when LRA is not used. It is achieved by checking a new variable lra_in_progress. 2012-09-27 Vladimir Makarov * rtlanal.c (simplify_subreg_regno): Permit ARG_POINTER_REGN

RFC: LRA for x86/x86-64 [8/9]

2012-09-27 Thread Vladimir Makarov
The following patch adds a code neccessary for correct work of LRA (function ira_setup_eliminable_regset) and for correct work of the compiler when LRA is used (see file dwarf2out.c). 2012-09-27 Vladimir Makarov * loop-invariant.c (calculate_loop_reg_pressure): Pass new argument to

RFC: LRA for x86/x86-64 [9/9]

2012-09-27 Thread Vladimir Makarov
This is the last patch switching on LRA for x86/x86-64. The patch also contains code deciding when to use spilling general regs into SSE instead of memory. 2012-09-27 Vladimir Makarov * config/i386/i386.h (enum ix86_tune_indices): Add X86_TUNE_GENERAL_REGS_SSE_SPILL. (TARGET_GE

Re: RFC: LRA for x86/x86-64 [4/9]

2012-09-27 Thread Joseph S. Myers
On Thu, 27 Sep 2012, Vladimir Makarov wrote: > * target.h: Include tm.h. That's a backward step; we'd like parts of the compiler that aren't using target macros directly not to end up including tm.h. Why do you need this? -- Joseph S. Myers jos...@codesourcery.com

Re: Merge C++ conversion into trunk (4/6 - hash table rewrite)

2012-09-27 Thread Gabriel Dos Reis
On Thu, Sep 27, 2012 at 1:35 PM, Lawrence Crowl wrote: > If we were to follow C++ standard library conventions, we would call > it value_type. That would be my preference. However, if folks > want a shorter name, I'll live with that too. But as it stands, > the current name is very confusing.

Re: RFC: LRA for x86/x86-64 [4/9]

2012-09-27 Thread Vladimir Makarov
On 09/27/2012 07:05 PM, Joseph S. Myers wrote: On Thu, 27 Sep 2012, Vladimir Makarov wrote: * target.h: Include tm.h. That's a backward step; we'd like parts of the compiler that aren't using target macros directly not to end up including tm.h. Why do you need this? Thanks, Joseph. Ho

Re: RFC: LRA for x86/x86-64 [4/9]

2012-09-27 Thread Joseph S. Myers
On Thu, 27 Sep 2012, Vladimir Makarov wrote: > Hook spill_class returns a value of enum reg_class which is defined in > target-depend include file. That's what reg_class_t is for: avoiding enum reg_class in hook interfaces. -- Joseph S. Myers jos...@codesourcery.com

Re: RFC: LRA for x86/x86-64 [4/9]

2012-09-27 Thread Vladimir Makarov
On 09/27/2012 08:07 PM, Joseph S. Myers wrote: On Thu, 27 Sep 2012, Vladimir Makarov wrote: Hook spill_class returns a value of enum reg_class which is defined in target-depend include file. That's what reg_class_t is for: avoiding enum reg_class in hook interfaces. Ok. Thanks for pointing

[PATCH 4.7] Backport "Don't pull in unwinder for 64-bit division routines"

2012-09-27 Thread Joey Ye
OK backporting following patches to 4.7? http://gcc.gnu.org/ml/gcc-patches/2012-07/msg01193.html 2012-08-17 Julian Brown * Makefile.in (LIB2_DIVMOD_EXCEPTION_FLAGS): Default to -fexceptions -fnon-call-exceptions if not defined. ($(lib2-divmod-o), $(lib2-divmod-s-o)): Use above.

Re: [Patch,avr]: Ad PR rtl-optimization/52543: Undo the MEM->UNSPEC hack

2012-09-27 Thread Denis Chertykov
2012/9/27 Georg-Johann Lay : > PR52543 required to represent a load from non-generic address spaces as UNSPEC > instead of as MEM to avoid a gross code bloat. > > http://gcc.gnu.org/PR52543 > > lower-subreg's cost model is still broken: It assumes that any loads from MEM > are from the generic addr

Patch committed: Don't use automatic dependencies for libbacktrace

2012-09-27 Thread Ian Lance Taylor
The libbacktrace library uses automake, so I just had it use automake's automatic dependency tracking. Unfortunately, that turns out not to work when building with "make bootstrap-lean". As I wrote in the appended patch: # We can't use automake's automatic dependency tracking, because it # break