[google] Backport r175009 from trunk to google/gcc-4_6 (issue4815082)

2011-08-03 Thread Guozhi Wei
Hi I want to port r175009 from trunk to google/gcc-4_6 since it fixed 3 dejagnu failures for arm backend. Tested on x86-64 with make check-gcc RUNTESTFLAGS="vect.exp" Tested on arm qemu with make check-gcc RUNTESTFLAGS="--target_board=arm-sim/thumb/arch=armv7-a vect.exp" make check-gcc RUNTESTFL

[Ada] Ada2012 : incomplete types can be used in more contexts

2011-08-03 Thread Arnaud Charlet
This patch allows tagged incomplete types to be used in profiles of entries and entry bodies, without the presence of a regular with_clause on the package whose limited view provides those types. The following must compile quietly: gcc -c -gnat12 -gnatws tagged_half_1.adb --- limited with Half

[Ada] Initialization of class-wide interface objects in VM targets

2011-08-03 Thread Arnaud Charlet
This patch does not change the behavior of native compilers. It adds missing support in VM targets for declarations of class-wide interface objects. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Javier Miranda * exp_intr.adb (Expand_Dispatching_Constructor_Call)

[Ada] merge operation should always clear source

2011-08-03 Thread Arnaud Charlet
The purpose of the Merge operation is to move elements from a sorted vector (the source) to another sorted vector (the target). Following the merge, the source container should be empty. There was an execution path (when the target was initially empty) in which the elements of the source were mere

[Ada] splice items from first to last

2011-08-03 Thread Arnaud Charlet
When splicing a source list before a position in a target list, the items must be spliced in order from first to last; otherwise, (splicing from last to first) the items become reversed as they are moved to the target. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Matthew Heaney

[Ada] Disable aggregate expansion in assignments in VM targets

2011-08-03 Thread Arnaud Charlet
This patch does not change the behavior of native compilers. It disables the frontend expansion of aggregates into assignments when the type of the aggregate whose size is not known at compile time. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Javier Miranda * exp_aggr

[PATCH, ARM] Generate conditional compares in Thumb2 state

2011-08-03 Thread Jiangning Liu
This patch is to generate more conditional compare instructions in Thumb2 state. Given an example like below, int f(int i, int j) { if ( (i == '+') || (j == '-') ) { return i; } else { return j; } } Without the patch, compiler generates the following codes, sub r2, r0,

[Ada] The actual type of a constant discriminated object

2011-08-03 Thread Arnaud Charlet
If a constant object of an unconstrained type with discriminants is initialzed with an aggregate, the constrained subtype of the aggregate can be used as the type of the object, because such an object is immutable. If all components of the aggregate are static, this allows the back-end to generate

[Ada] Compiler crash when an aggregate's range choice does not match index type

2011-08-03 Thread Arnaud Charlet
A type mismatch between the bounds of an array aggregate's range choice and the expected index type causes the compiler to crash or go into an infinite loop. Although the compiler catches the type resolution error, and the range is marked as having an error posted, the bounds are not marked, preven

[Ada] Premature freezing when building dispatch tables

2011-08-03 Thread Arnaud Charlet
When a tagged type is frozen, its primitive operations are frozen, and the profiles of these operations are frozen as well. This patch checks that these profiles do not include a non-private type with a private unfrozen subcomponent, and report an error otherwise. Previously the compiler only flagg

[Ada] Expansion of selected components that denote discriminants

2011-08-03 Thread Arnaud Charlet
In general a selected component that denotes a discriminant can be replaced with the corresponding discriminant value if it comes from a constrained type. However if the discriminant is not static and is an expression with implicit control, such as a short-circuit operation, copying the value may l

[Ada] Itype references and generics

2011-08-03 Thread Arnaud Charlet
Itype references are constructed to force the backend to elaborate itypes at the point of definition, to prevent scope anomalies if the first use of the itype is within some later nested context. Itypes must not be generated for formal generic types, and more generally within a generic unit, becaus

[Ada] Clear confusion about -fno-inline in the GNAT UG

2011-08-03 Thread Arnaud Charlet
The GNAT Pro User's Guide reads: `-fno-inline' Suppresses all back-end inlining, even if other optimization or inlining switches are set. This includes suppression of inlining that results from the use of the pragma Inline_Always. Any occurrences of pragma Inline or Inline_Always are ignore

Re: [PATCH][2/2][RFC] Fix PR49806, promote/demote binary operations in VRP

2011-08-03 Thread Richard Guenther
On Tue, 2 Aug 2011, Ira Rosen wrote: > > > Richard Guenther wrote on 02/08/2011 04:25:58 PM: > > > > > > Thinking about it it probably makes sense to keep a variant of this > > in the vectorizer - after all it has quite specific requirements on > > operand sizes while VRP would probably demot

[Ada] C++ types are limited

2011-08-03 Thread Arnaud Charlet
Ada types with convention CPP_Class are treated as limited types. This change requires that they are declared with the LIMITED keyword (previously we already issued a warning in such case). This does not substantially alter the compiler's treatment of such types, since they were already supposed to

[Ada] Null string literals in non-static context

2011-08-03 Thread Arnaud Charlet
The lower bound of a string literal is set to the 'First of the base type of the index type, when the lower bound of the context type is non-static. This is problematic if the string is an empty string and the base type is Integer, because then the uppper bound is not representable. Given that the

[Ada] Initialize hidden discriminants in extension aggregates

2011-08-03 Thread Arnaud Charlet
If the type of the aggregate is derived, and constrains discriminants of the parent type, these discriminants are not components of the aggregate, and must be initialized by the code generated by the compiler. They are not visible components of the object, but can become visible with a view convers

[Ada] Minor improvement to traces, to support indented output

2011-08-03 Thread Arnaud Charlet
This makes it easier to follow the stream of log traces while working on the project manager. This does not change the normal output or behavior of the builders. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Emmanuel Briot * prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb,

[Ada] Remove Target_Name parameter in subprograms

2011-08-03 Thread Arnaud Charlet
In prj.env, several subprograms were taking a Target_Name parameter, only so that they could initialize the project path if not already done. We now request that the project path first be initialized. This is slightly more efficient, but more importantly simplifies the API a bit. It will also be re

Re: [patch tree-optimization]: Add cleanup code for possible unused statements in binary optimization

2011-08-03 Thread Richard Guenther
On Tue, Aug 2, 2011 at 5:40 PM, Kai Tietz wrote: > 2011/8/2 Richard Guenther : >> On Tue, Aug 2, 2011 at 12:39 PM, Kai Tietz wrote: > > Thanks, yes, I noticed that.  Patch adjusted for cfg_tree. What about my other comment? > ChangeLog > > 2011-08-02  Kai Tietz   > >         * tree-ssa-forwprop

[Ada] fix traceback computation stop condition for ppc-aix

2011-08-03 Thread Arnaud Charlet
This change adjusts the traceback stop condition for ppc-aix to stop at null return addresses, sometimes encountered alone (with the associated backchain pointer not null) to indicate a toplevel frame. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Olivier Hainque * tra

[Ada] Double free in GNAT.Perfect_Hash_Generators.Finalize

2011-08-03 Thread Arnaud Charlet
This change prevents a potential double free in Finalize, which can cause gnatprfh to crash on some platforms. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Thomas Quinot * g-pehage.adb (Finalize): Avoid possible double-free. Index: g-pehage.adb ===

[Ada] Flatten aggregates with no static bounds and no others choice

2011-08-03 Thread Arnaud Charlet
This patch does not affect the behavior of native compilers. It extends the cases in which aggregates are internally converted into purely positional form, which helps the backend of VM compilers. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Javier Miranda * exp_aggr.a

Re: [PATCH Atom][PR middle-end/44382] Tree reassociation improvement

2011-08-03 Thread Ilya Enkovich
Ping. 2011/7/26 Ilya Enkovich : > Hello, > > Here is updated patch for tree reassoc phase. Update includes coding > style fixes, comments update, target hook arguments change. I also > moved a part of code from rewrite_expr_tree into separate function to > reuse it in rewrite_expr_tree_parallel fo

[PATCH, gomp]: Unbreak bootstrap on glibc-2.5

2011-08-03 Thread Uros Bizjak
Hello! We should not call CPU_COUNT when not defined in glibc. 2011-08-03 Uros Bizjak * config/linux/proc.c (gomp_cpuset_popcount): Rename from cpuset_popcount. No more static. (gomp_init_num_threads): Update call to cpuset_popcount. (get_num_procs): Ditto.

Re: [PATCH, gomp]: Unbreak bootstrap on glibc-2.5

2011-08-03 Thread Jakub Jelinek
On Wed, Aug 03, 2011 at 10:36:47AM +0200, Uros Bizjak wrote: > We should not call CPU_COUNT when not defined in glibc. Oops, forgot that old glibcs don't have it. > 2011-08-03 Uros Bizjak > > * config/linux/proc.c (gomp_cpuset_popcount): Rename from > cpuset_popcount. No more sta

[Ada] Change of profile for Prj.Part.Parse

2011-08-03 Thread Arnaud Charlet
The new parameter makes it possible, while processing aggregate projects, to stop the processing as soon as an error is found in one of the aggregated projects. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Emmanuel Briot * prj-part.adb, prj-part.ads, prj-makr.adb, prj-

[Ada] New type Prj.Ext.External_References

2011-08-03 Thread Arnaud Charlet
This type was introduced so that we can have two sets of environment variables when manipulating aggregate projects (one for the aggregate, one for the aggregated projects). But we can have more than two project trees, since we have one per aggregated project. So creating a new type makes it possib

Re: [Patch, Fortran] PR fortran/49885: Fix automatic character array allocation

2011-08-03 Thread Daniel Kraft
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 08/02/11 22:04, Tobias Burnus wrote: > Daniel Kraft wrote: >> No regressions on x86_64-unknown-linux-gnu. Ok for trunk? > > OK for the trunk and for 4.6 (as it is a regression). And committed on 4.6 branch as rev. 177249, there also were no regre

[Ada] avoid incorrect lower casing of attribute names in some cases

2011-08-03 Thread Arnaud Charlet
The change to Get_Attribute_Index avoids an incorrect lower casing of the external variable name when using the new "External" attribute in aggregate projects. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Emmanuel Briot * prj-proc.adb, prj-attr.adb, prj-attr.ads (Get_A

[Ada] Put imported spec in ALI file when body is not found

2011-08-03 Thread Arnaud Charlet
When an imported unit needs a body, bit the body source file cannot be found, always put the spec file name in the ALI file of the importing unit. This was done when a configuration pragmas file was available to the compiler, but not when there was no vonfiguration pragmas file. This is now done in

[Ada] Initial steps for convention Ada_Pass_By_Copy/Reference

2011-08-03 Thread Arnaud Charlet
First steps in implementation of convention Ada_Pass_By_Copy/Reference Not yet complete, not ready for tests. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Robert Dewar * repinfo.adb (List_Mechanism): Add handling of Convention_Ada_Pass_By_XXX. * sem_mec

[Ada] Add a link between body and spec scopes in ALFA section of ALI file

2011-08-03 Thread Arnaud Charlet
In order to be able to reconstruct the information in back-ends which do not have access to all the code, it is necessary that body scopes refer to their spec scope when different. This has been added to the ALFA scope section of the ALI file. Tested on x86_64-pc-linux-gnu, committed on trunk 201

[Ada] process the External attribute in aggregate projects

2011-08-03 Thread Arnaud Charlet
When processing an aggregate project, the "External" attribute can be used to modify the environment that is used to parse the aggregated projects. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Emmanuel Briot * prj-proc.adb, prj-ext.adb, prj-ext.ads, prj-env.adb, prj-en

[Ada] Adapt SPARK restriction to follow modification of SPARK LRM

2011-08-03 Thread Arnaud Charlet
SPARK LRM was modified to allow the names of constants to occur as operands of concatenation. The SPARK restriction has been updated to reflect this change. The following now compiles quietly: pragma Restrictions (SPARK); procedure Concat is subtype Small_Range is Positive range 1 .. 1; su

[Ada] Unresolved discriminant selector of private overloaded prefix

2011-08-03 Thread Arnaud Charlet
The compiler rejects a selected component naming a discriminant of a private type when the prefix is overloaded. Prefixes of private types were not being accounted for in analysis and resolution of an overloaded selected component. The following test must compile quietly: procedure Overloaded_Dis

[Ada] Use TLS to implement Self on Linux

2011-08-03 Thread Arnaud Charlet
This patch provides a generic support to use TLS for the Ada tasking run-time (file s-tpopsp-tls.adb) and enables this support on several Linux platforms. More platforms may be switched later. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Arnaud Charlet * s-taprop-posix

[Ada] Switch to ZCX on AIX

2011-08-03 Thread Arnaud Charlet
We've had this setting enabled by default in our AdaCore tree for years now, so enabling this setting here. Manually tested on powerpc-aix Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Arnaud Charlet * system-aix.ads, system-aix64.ads: Set ZCX_By_Default to True.

Fix Solaris Ada bootstrap

2011-08-03 Thread Rainer Orth
Two of the latest Ada patches broke bootstrap on Solaris: In file included from /vol/gcc/src/hg/trunk/local/gcc/ada/link.c:42:0: ./auto-host.h:1829:0: error: "_FILE_OFFSET_BITS" redefined [-Werror] /var/gcc/regression/trunk/10-gcc/build/./prev-gcc/include-fixed/sys/feature_tests.h:197:0: note: th

Re: [PATCH 4/6] Shrink-wrapping

2011-08-03 Thread Alan Modra
On Thu, Jul 28, 2011 at 12:35:46PM +0200, Bernd Schmidt wrote: [snip] > * rtl.h (ANY_RETURN_P): New macro. [snip] This patch makes rebuild_jump_labels set JUMP_LABEL appropriately for return jumps, and fixes sharing for RETURN. Since ANY_RETURN_P(X) is defined as ((X) == ret_rtx), RETURNs n

Re: [Patch,AVR]: Cleanup libgcc.S

2011-08-03 Thread Georg-Johann Lay
http://gcc.gnu.org/ml/gcc-patches/2011-08/msg00140.html Weddington, Eric wrote: >> >> This patch fixes RCALL/RJMP instructions to other modules by replacing >> them >> with XCALL resp. XJMP. >> > > Hi Johann, > > Do we want to add a binutils bug report for the FIXME that you just added in > th

[RFC PATCH] Allow user specs files to add self_spec

2011-08-03 Thread Jakub Jelinek
Hi! I couldn't find a way to add an option in specs, so that it would affect other specs, like e.g. to make -pie the default if -shared/-static/-pie/-r isn't passed in specs would require duplicating *startfile/*endfile: %rename link link_pie_old *link: %{shared|static|pie|r:;:-pie} %(link_pie_old

[Ada] Detect array types which belong to ALFA subset

2011-08-03 Thread Arnaud Charlet
Follow-up of previous changes to detect ALFA subset. Deals here with array types, which should have static bounds and have index/component types in ALFA. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Yannick Moy * cstand.adb (Create_Standard): select Universal_Integer a

Re: [PATCH, gomp]: Unbreak bootstrap on glibc-2.5

2011-08-03 Thread Uros Bizjak
On Wed, Aug 3, 2011 at 11:11 AM, Jakub Jelinek wrote: > On Wed, Aug 03, 2011 at 10:36:47AM +0200, Uros Bizjak wrote: >> We should not call CPU_COUNT when not defined in glibc. > > Oops, forgot that old glibcs don't have it. > I don't like the prototype in libgomp.h, for one sched.h isn't included

Re: [trans-mem] Beginning of refactoring

2011-08-03 Thread Torvald Riegel
This small patch fixes the rollback of the transaction ID as well as queries for it. OK for branch? commit bd83b4594c1f6eee09e0fa7b369557f986291f9b Author: Torvald Riegel Date: Fri Jul 29 15:19:04 2011 +0200 Fix rollback and queries of transaction ID. * beginend.cc (GTM::gtm_t

[Ada] Default 'Input for array of limited object

2011-08-03 Thread Arnaud Charlet
This change fixes a bug in the generation of the default implementation of the 'Input stream attribute in Ada 2005 mode for the case of an unconstrained array of limited objects with a 'Read attribute. The following compilation must be accepted quietly: $ gcc -c -gnat05 unc_lim_input.adb with Ada

[Ada] gnatmake with --subdirs= but no -P

2011-08-03 Thread Arnaud Charlet
When gnatmake is invoked with --subdirs= but not with -P, the specified subdirectory will now be created, if it does exist, and it will be used as the object directory as if -D had been used. The test for this is to invoke gnatmake as such: gnatmake --subdirs=toto main.adb The subdirectory toto

[trans-mem] New TM method: serial-irrevocable on first write

2011-08-03 Thread Torvald Riegel
This adds a new TM method which lets transactions simply read through without any protection until the first write in the transaction, upon which the transaction switches to serial-irrevocable mode (thus isolating all other transactions from uncommitted writes). This can work well for read-mostly

[trans-mem] Move state from gtm_thread to gtm_transaction

2011-08-03 Thread Torvald Riegel
patch3: After the previous change to flat nesting by default, checkpoints, and thus having only a single gtm_transaction object per thread, we can move the local_tid field to gtm_transaction too. As a result, we don't have to access gtm_thread in GTM_begin_transaction anymore. patch4: A small fix

[PATCH] Fix PR49938

2011-08-03 Thread Richard Guenther
This fixes PR49938 by instead of asserting return chrec_dont_know. Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk. Richard. 2011-08-03 Richard Guenther PR tree-optimization/49938 * tree-scalar-evolution.c (interpret_loop_phi): Gracefully deal w

[trans-mem] Release transaction objects on thread termination

2011-08-03 Thread Torvald Riegel
This patch removes the per-thread free-list of gtm_transaction objects. With a single stable gtm_transaction object per thread, it is not necessary anymore. Furthermore, a destructor function of a pthread TLS key is used to release a thread's gtm_transaction object when this thread terminates. This

Re: [PATCH 4/6] Shrink-wrapping

2011-08-03 Thread Bernd Schmidt
On 08/03/11 12:41, Alan Modra wrote: > This patch makes rebuild_jump_labels set JUMP_LABEL appropriately > for return jumps, and fixes sharing for RETURN. Since ANY_RETURN_P(X) > is defined as ((X) == ret_rtx), RETURNs need to stay shared. > Bootstrapped and regression tested powerpc-linux and pow

Re: C++ PATCH for c++/49813 (__builtin_isinf in constant expression)

2011-08-03 Thread Gabriel Dos Reis
On Mon, Aug 1, 2011 at 1:12 PM, Jason Merrill wrote: > Another issue raised in 49813 is that morally_constexpr_builtin_function_p > was rejecting __builtin_isinf because it has a variadic signature.  I'm > changing potential_constant_expression_1 to just allow any built-in function > in a constexp

Re: [Patch, Fortran] (Coarray) Fix constraint checks for LOCK_TYPE

2011-08-03 Thread Mikael Morin
Hello, On Tuesday 02 August 2011 18:08:05 Tobias Burnus wrote: > This patch fixes two issues: > > a) LOCK(coarray%lock_type_comp) is also a coarray. > > b) The following constraint was incompletely checked for: C1302. For > reference, I also list C1303/C1304. [...] > > PS: It somehow took me

Re: [patch tree-optimization]: Improve reassociation pass for bitwise-operations

2011-08-03 Thread Kai Tietz
Hello, I noticed that I disallowed expansion of ~(X bitwise-binary-ops) for none-boolean type. This limitiation isn't necessary and prevented even some pattern-detections. I've added 3 new testcases for this to the patch. ChangeLog 2011-08-03 Kai Tietz * tree-ssa-reassoc.c (gimple b

[trans-mem] Test that nested txns started from pure/unsafe code work correctly

2011-08-03 Thread Torvald Riegel
Tests that new transactions can be started from both transaction_pure and transaction_unsafe code. This also checks proper handling of reentrant nesting in the serial_lock implementation (reentrant in the sense that we go from transactional to nontransactional to transactional code). This test curr

[trans-mem] Test static constructors inside of transactional code

2011-08-03 Thread Torvald Riegel
Based on recent discussions among the C++ TM specification group, static constructors should be allowed in transactional (i.e., transaction_safe) code. GCC should have a wrapper assigment for __cxa_guard_acquire and __cxa_guard_release, and libitm should implement wrappers that guarantee atomicity

[PATCH] Fix PR49958

2011-08-03 Thread Richard Guenther
This fixes a wrong re-association which can introduce undefined overflow. The fix is to perform this only when overflow is known to wrap. Bootstrap and regtest pending on x86_64-unknown-linux-gnu. Richard. 2011-08-03 Richard Guenther PR middle-end/49958 * fold-const.c (fold

Re: [RFC] Cleanup DW_CFA_GNU_args_size handling

2011-08-03 Thread Georg-Johann Lay
Richard Henderson wrote: > On 08/01/2011 11:42 AM, Georg-Johann Lay wrote: >> Is there a specific reason not to define >> ACCUMULATE_OUTGOING_ARGS on AVR? > > Yes. So that you can use PUSH. But as I said in PR49881, > you probably want to provide -maccumulate-outgoing-args. > > I have a follow-

Re: [patch tree-optimization]: Improve reassociation pass for bitwise-operations

2011-08-03 Thread Richard Guenther
On Wed, Aug 3, 2011 at 1:47 PM, Kai Tietz wrote: > Hello, > > I noticed that I disallowed expansion of ~(X bitwise-binary-ops) for > none-boolean type.  This limitiation isn't necessary and prevented > even some pattern-detections. > I've added 3 new testcases for this to the patch. You seem to u

[RFC PATCH] Add alloc_size attribute to the default operator new and operator new[]

2011-08-03 Thread Jakub Jelinek
Hi! As mentioned in PR49905, -D_FORTIFY_SOURCE{,=2} handles e.g. malloc (4) or malloc (16) well, knowing that the resulting pointer has object size 4 resp. 16, but for new int or new int[4], it currently doesn't assume anything (i.e. __builtin_object_size (new int, 0) returns -1). While I see the

Re: [RFC PATCH] Add alloc_size attribute to the default operator new and operator new[]

2011-08-03 Thread Richard Guenther
On Wed, Aug 3, 2011 at 2:31 PM, Jakub Jelinek wrote: > Hi! > > As mentioned in PR49905, -D_FORTIFY_SOURCE{,=2} handles e.g. > malloc (4) or malloc (16) well, knowing that the resulting pointer > has object size 4 resp. 16, but for new int or new int[4], it currently > doesn't assume anything (i.e.

Fix Tru64 UNIX Ada bootstrap

2011-08-03 Thread Rainer Orth
Tru64 UNIX Ada bootstrap was broken, too: /vol/gcc/src/hg/trunk/solaris/gcc/ada/init.c: In function 'void __gnat_error_handler(int, siginfo_t*, void*)': /vol/gcc/src/hg/trunk/solaris/gcc/ada/init.c:382:50: error: cast from type 'const char*' to type 'char*' casts away qualifiers [-Werror=cast-qu

Re: [RFC PATCH] Add alloc_size attribute to the default operator new and operator new[]

2011-08-03 Thread Paolo Bonzini
On 08/03/2011 02:46 PM, Richard Guenther wrote: If that's reasonable then adding the malloc attribute should be, too. Making aliasing stricter for -D_FORTIFY_SOURCE=2 sounds wrong though. Paolo

Re: [GCC-MELT-152] [MELT] Add a few tree primitives

2011-08-03 Thread Romain Geissler
Hi 2011/8/2 Basile Starynkevitch : > On Tue, 2 Aug 2011 19:13:04 +0200 > Romain Geissler wrote: >> > You should build MELT in an empty build tree. Please give us the log file >> > of your make >> > (don't use make -j, only a sequential make). >> >> Ok, i'll send you that tomorrow. Tell me if you

Re: [patch tree-optimization]: Improve reassociation pass for bitwise-operations

2011-08-03 Thread Michael Matz
Hi, On Tue, 2 Aug 2011, Kai Tietz wrote: > this patch improves the ability of reassociation pass to simplifiy > more complex bitwise-binary > operations with comparisons. We break-up for this patch statements > like (X | Y) != 0 to X != 0 | Y != 0, > and (X | Y) == 0 to expanded X == 0 & Y == 0.

Re: Fix Tru64 UNIX Ada bootstrap

2011-08-03 Thread Arnaud Charlet
> Fixed as follows, bootstrap is well beyond the failure now. > > Ok for mainline? OK, thanks.

Re: [patch tree-optimization]: Improve reassociation pass for bitwise-operations

2011-08-03 Thread Kai Tietz
2011/8/3 Michael Matz : > Hi, > > On Tue, 2 Aug 2011, Kai Tietz wrote: > >> this patch improves the ability of reassociation pass to simplifiy >> more complex bitwise-binary >> operations with comparisons.  We break-up for this patch statements >> like (X | Y) != 0 to X != 0 | Y != 0, >> and (X | Y

[build] Move unwinder to toplevel libgcc (v2)

2011-08-03 Thread Rainer Orth
This is the revised/updated version of the patch originally posted at [build] Move unwinder to toplevel libgcc http://gcc.gnu.org/ml/gcc-patches/2011-06/msg01452.html and reposted as CFT at http://gcc.gnu.org/ml/gcc-patches/2011-07/msg00201.html It should incorporate all

[PATCH][RFC] Fix PR49957 - build array index differently

2011-08-03 Thread Richard Guenther
This fixes PR49957 by keeping the array index into a multi-dimensional array in optimal associated form which is ((off + outermost) + ...) + innermost) + constant) so that dependence analysis can properly handle it. It doesn't work right now because we build the expression in reverse order, fold

Re: Fix Solaris Ada bootstrap

2011-08-03 Thread Arnaud Charlet
> Ok for mainline? > > Thanks. > Rainer > > > 2011-08-03 Rainer Orth > > * link.c: Include "auto-host.h" before system headers. OK, thanks.

Re: [RFC PATCH] Add alloc_size attribute to the default operator new and operator new[]

2011-08-03 Thread Richard Guenther
On Wed, Aug 3, 2011 at 3:06 PM, Paolo Bonzini wrote: > On 08/03/2011 02:46 PM, Richard Guenther wrote: >> >> If that's reasonable then adding the malloc attribute should be, too. > > Making aliasing stricter for -D_FORTIFY_SOURCE=2 sounds wrong though. The patch unconditionally adds malloc_size.

Re: [RFC PATCH] Add alloc_size attribute to the default operator new and operator new[]

2011-08-03 Thread Jakub Jelinek
On Wed, Aug 03, 2011 at 03:55:39PM +0200, Richard Guenther wrote: > On Wed, Aug 3, 2011 at 3:06 PM, Paolo Bonzini wrote: > > On 08/03/2011 02:46 PM, Richard Guenther wrote: > >> > >> If that's reasonable then adding the malloc attribute should be, too. > > > > Making aliasing stricter for -D_FORTI

Re: [RFC] Cleanup DW_CFA_GNU_args_size handling

2011-08-03 Thread Ulrich Weigand
Richard Henderson wrote: > emit_stack_restore (SAVE_BLOCK, old_stack_level); > stack_pointer_delta = old_stack_pointer_delta; > + > + /* ??? Is this assert warrented, given emit_stack_restore? > + or should we just mark the last insn no matter what? */ > + las

Re: [RFC] Cleanup DW_CFA_GNU_args_size handling

2011-08-03 Thread Georg-Johann Lay
what we want? RETURN_POPS_ARGS cannot help here. Johann .file "printf.c" __SREG__ = 0x3f __SP_H__ = 0x3e __SP_L__ = 0x3d __tmp_reg__ = 0 __zero_reg__ = 1 ; GNU C (GCC) version 4.7.0 20110803 (experimental) (avr) ; compiled by GNU C version 4.3.2 [gcc-4_3-branch revisio

PATCH PR target/47744: [x32] ICE: in reload_cse_simplify_operands, at postreload.c:403

2011-08-03 Thread H.J. Lu
Hi, I checked in the following testcases for PR target/47744. H.J. --- Index: gcc.dg/torture/pr47744-2.c === --- gcc.dg/torture/pr47744-2.c (revision 0) +++ gcc.dg/torture/pr47744-2.c (revision 0) @@ -0,0 +1,40 @@ +/* { dg-do comp

Re: [patch tree-optimization]: Improve reassociation pass for bitwise-operations

2011-08-03 Thread Richard Guenther
On Wed, Aug 3, 2011 at 3:32 PM, Kai Tietz wrote: > 2011/8/3 Michael Matz : >> Hi, >> >> On Tue, 2 Aug 2011, Kai Tietz wrote: >> >>> this patch improves the ability of reassociation pass to simplifiy >>> more complex bitwise-binary >>> operations with comparisons.  We break-up for this patch statem

Re: [patch tree-optimization]: Improve reassociation pass for bitwise-operations

2011-08-03 Thread Michael Matz
Hi, On Wed, 3 Aug 2011, Kai Tietz wrote: > > Implement all of this in the normal reassoc machinery that already > > exists. Don't implement your own walker (which btw is superlinear > > because you recurse into both operands).  If no simplifications were > > possible you have to fold back the

Re: [RFC] Cleanup DW_CFA_GNU_args_size handling

2011-08-03 Thread H.J. Lu
On Tue, Aug 2, 2011 at 3:32 PM, Richard Henderson wrote: > I got Jeff Law to review the reload change on IRC > and committed the composite patch. > > Tested on x86_64, i586, avr, and h8300.  Most other > tier1 targets ought not be affected, as this patch > only applies to ACCUMULATE_OUTGOING_ARGS

Re: CFT: [build] Move fp-bit support to toplevel libgcc

2011-08-03 Thread Joseph S. Myers
On Wed, 3 Aug 2011, Rainer Orth wrote: > * Even worse, there are a couple of formats/targets that do use > fp-bit.c, don't yet define QUIET_NAN_NEGATED, but have qnan_msb_set = > false: > > qnan_msb_setuses fp-bit > > mips_single_forma

[Ada] Support for controlled objects allocated on the heap for .NET/JVM

2011-08-03 Thread Arnaud Charlet
The following patch adds partial support for controlled objects allocated on the heap for .NET/JVM compilation environments. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Hristian Kirtchev * exp_ch13.adb: Add with and use clause for Targparm; (Expand_N_Free_Stat

PATCH: Add a testase for PR middle-end/47383

2011-08-03 Thread H.J. Lu
Hi, I checked in this patch to add a testase for PR middle-end/47383. H.J. --- Index: gcc.dg/torture/pr47383.c === --- gcc.dg/torture/pr47383.c(revision 0) +++ gcc.dg/torture/pr47383.c(revision 0) @@ -0,0 +1,30 @@ +/* { dg-do

[Ada] Tag-indeterminate calls

2011-08-03 Thread Arnaud Charlet
A function call is tag-indeterminate if the function dispatches on result and if the return type is tagged. This depends on the current view of the type. Previously the predicate only checked on whether the function was known to dispatch on result. Tested on x86_64-pc-linux-gnu, committed on trunk

[Ada] Make GNAT.AWK API compatible with Ada 2005.

2011-08-03 Thread Arnaud Charlet
Ada 2005 does not allow returning limited objects from a function. As this interface should be callable from Ada 95 and Ada 2005 we have changed the API to return access type instead. This minor upward compatibility issue is very easy to fix. A ".all" needs to be added to calls to routines Current

Re: [patch tree-optimization]: Improve reassociation pass for bitwise-operations

2011-08-03 Thread Kai Tietz
2011/8/3 Michael Matz : > Hi, > > On Wed, 3 Aug 2011, Kai Tietz wrote: > >> > Implement all of this in the normal reassoc machinery that already >> > exists. Don't implement your own walker (which btw is superlinear >> > because you recurse into both operands).  If no simplifications were >> > poss

[Ada] Improper optimization of range checks

2011-08-03 Thread Arnaud Charlet
Several static evaluation routines use Determine_Range to establish the bounds of a non-static expression. If overflow cheks are enabled, the range of the result of unary and binary operations may raise an exception, and cannot be assumed to evaluate correctly without a run-time check. This patch p

[Ada] Finalization actions during abort

2011-08-03 Thread Arnaud Charlet
This patch reimplements how finalization is carried out during an abort. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Hristian Kirtchev * a-except-2005.adb (Raise_From_Controlled_Operation): Add new formal From_Abort. When finalization was triggered by an abort

Re: [RFC] Cleanup DW_CFA_GNU_args_size handling

2011-08-03 Thread Richard Henderson
On 08/03/2011 07:07 AM, Georg-Johann Lay wrote: > #include > > void foo () > { > printf ("%d %d %d", 1, 2, 3); > printf ("%d %d %d", 3, 4, 5); > printf ("%d %d %d", 1, 4, 5); > } > > Attached the output: The compiler happily pushes onto the stack > but pops only at the end of the fun

[Ada] Extend ALFA marks to more types of nodes

2011-08-03 Thread Arnaud Charlet
Follow-up of work on marking nodes as being in ALFA for formal verification. Mark more nodes in ALFA when a reasonable translation exists for verification. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Yannick Moy * sem_ch11.adb (Analyze_Raise_xxx_Error): do not mark su

Re: [RFC] Cleanup DW_CFA_GNU_args_size handling

2011-08-03 Thread Richard Henderson
On 08/03/2011 07:07 AM, Ulrich Weigand wrote: > Was this assert intended to impose requirements on target's > restore_stack_block implemtations? What exactly are those > supposed to be? The assert was not intended to impose requirements, but to figure out if I needed to do anything special here.

Re: [PATCH][RFC] Fix PR49957 - build array index differently

2011-08-03 Thread Richard Guenther
On Wed, 3 Aug 2011, Richard Guenther wrote: > > This fixes PR49957 by keeping the array index into a multi-dimensional > array in optimal associated form which is ((off + outermost) + ...) + > innermost) + constant) so that dependence analysis can properly > handle it. It doesn't work right now

[Ada] Only allow boolean conditional expression in ALFA

2011-08-03 Thread Arnaud Charlet
Previous patch allowed any type of conditional expression in ALFA. Now restrict this to boolean expressions only. Possibly subject to change later on when translation from ALFA improves. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Yannick Moy * sem_ch4.adb (Analyze_Co

[Ada] Set_Command_Line: improve handling of grouped switches with parameters

2011-08-03 Thread Arnaud Charlet
The following code should find two switches on the command line: -gnatyL (with parameter "1") and -gnatya. Instead, we used to find a single switch -gnatyL with parameter "1a". Define_Switch (Config, "-gnatyL!"); Define_Switch (Config, "-gnatya"); Define_Prefix (Config, "-gnaty"); S

Selective scheduler fixes

2011-08-03 Thread Alexander Monakov
Hello, This is a series of selective scheduler bug fixes. They fix problems that have been discovered during internal testing, and one patch is necessary as preparation to predication support in the selective scheduler (predication patches will be submitted separately later). I'm sorry that patc

[PATCH 1/8] Take maximum spec when merging exprs

2011-08-03 Thread Alexander Monakov
From: Dmitry Melnik EXPR_SPEC is an indicator of the speculativeness of an expression (an instruction or just an rhs), as it is incremented each time the expression is moved up across a conditional branch. When merging expr attributes for similar exprs available from two destinations of a branch

[PATCH 3/8] Fix usage of hard_regno_nregs before reload

2011-08-03 Thread Alexander Monakov
From: Sergey Grechanik This fixes one place where hard_regno_nregs is incorrectly guarded by reload_completed (as if before reload all regs are pseudos). 2011-08-04 Sergey Grechanik * sel-sched.c (verify_target_availability): Fix usage of hard_regno_nregs. diff --git a/gcc/s

[PATCH 4/8] Properly loop over all hard regs for mode

2011-08-03 Thread Alexander Monakov
From: Sergey Grechanik There are several places where bitmap_bit_p function is used to test if some register is in the regset. We need to take into account the fact that depending on mode, we need to test multiple hard regs. 2011-08-04 Sergey Grechanik * sel-sched-ir.h (register_una

[PATCH 5/8] Drop an incorrect assert

2011-08-03 Thread Alexander Monakov
From: Dmitry Melnik This fixes a bug caused by trying to initialize BB_AV_SET of a newly generated jump. It assumes that jump is only generated in new bb, while it can be replaced in same BB by try_redirect_by_replacing_jump, if jump was conditional and was pointing to the same BB by its both ed

[PATCH 6/8] Try successors to find seqno

2011-08-03 Thread Alexander Monakov
From: Sergey Grechanik This patch fixes a problem when new jumps created in sel_redirect_edge_and_branch_force could not get correct seqnos. get_seqno_of_a_pred is renamed to get_seqno_for_a_jump. Implementation-wise, it supports looking at multiple predecessors, and, if that fails, also at succ

[PATCH 2/8] Make more insns unique

2011-08-03 Thread Alexander Monakov
From: Dmitry Melnik This patch prevents duplicating (as bookkeeping code) instructions that are either volatile or recognized by cannot_copy_insn_p target hook (in addition to already present restrictions). This avoids generating incorrect assembler with duplicate labels on ARM. 2011-08-04 Dmi

  1   2   >