aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-10-17Add line map statistics to -fmem-report outputTom Tromey8-4/+231
This patch adds statistics about line maps' memory consumption and macro expansion to the output of -fmem-report. It has been useful in trying to reduce the memory consumption of the macro maps support. Co-Authored-By: Dodji Seketeli <dodji@redhat.com> From-SVN: r180085
2011-10-17Support -fdebug-cpp optionTom Tromey11-12/+144
This patch adds -fdebug-cpp option. When used with -E this dumps the relevant macro map before every single token. This clutters the output a lot but has proved to be invaluable in tracking some bugs during the development of the virtual location support. Co-Authored-By: Dodji Seketeli <dodji@redhat.com> From-SVN: r180084
2011-10-17Emit macro expansion related diagnosticsTom Tromey16-11/+343
In this third instalment the diagnostic machinery -- when faced with the virtual location of a token resulting from macro expansion -- uses the new linemap APIs to unwind the stack of macro expansions that led to that token and emits a [hopefully] more useful message than what we have today. diagnostic_report_current_module has been slightly changed to use the location given by client code instead of the global input_location variable. This results in more precise diagnostic locations in general but then the patch adjusts some C++ tests which output changed as a result of this. Three new regression tests have been added. The mandatory screenshot goes like this: [dodji@adjoa gcc]$ cat -n test.c 1 #define OPERATE(OPRD1, OPRT, OPRD2) \ 2 OPRD1 OPRT OPRD2; 3 4 #define SHIFTL(A,B) \ 5 OPERATE (A,<<,B) 6 7 #define MULT(A) \ 8 SHIFTL (A,1) 9 10 void 11 g () 12 { 13 MULT (1.0);/* 1.0 << 1; <-- so this is an error. */ 14 } [dodji@adjoa gcc]$ ./cc1 -quiet -ftrack-macro-expansion test.c test.c: In function 'g': test.c:5:14: erreur: invalid operands to binary << (have 'double' and 'int') test.c:2:9: note: in expansion of macro 'OPERATE' test.c:5:3: note: expanded from here test.c:5:14: note: in expansion of macro 'SHIFTL' test.c:8:3: note: expanded from here test.c:8:3: note: in expansion of macro 'MULT2' test.c:13:3: note: expanded from here Co-Authored-By: Dodji Seketeli <dodji@redhat.com> From-SVN: r180083
2011-10-17Generate virtual locations for tokensTom Tromey17-153/+1434
This second instalment uses the infrastructure of the previous patch to allocate a macro map for each macro expansion and assign a virtual location to each token resulting from the expansion. To date when cpp_get_token comes across a token that happens to be a macro, the macro expander kicks in, expands the macro, pushes the resulting tokens onto a "token context" and returns a dummy padding token. The next call to cpp_get_token goes look into the token context for the next token [which is going to result from the previous macro expansion] and returns it. If the token is a macro, the macro expander kicks in and you know the story. This patch piggy-backs on that macro expansion process, so to speak. First it modifies the macro expander to make it create a macro map for each macro expansion. It then allocates a virtual location for each resulting token. Virtual locations of tokens resulting from macro expansions are then stored on a special kind of context called an "expanded tokens context". In other words, in an expanded tokens context, there are tokens resulting from macro expansion and their associated virtual locations. cpp_get_token_with_location is modified to return the virtual location of tokens resulting from macro expansion. Note that once all tokens from an expanded token context have been consumed and the context and is freed, the memory used to store the virtual locations of the tokens held in that context is freed as well. This helps reducing the overall peak memory consumption. The client code that was getting macro expansion point location from cpp_get_token_with_location now gets virtual location from it. Those virtual locations can in turn be resolved into the different interesting physical locations thanks to the linemap API exposed by the previous patch. Expensive progress. Possibly. So this whole virtual location allocation business is switched off by default. So by default no extended token is created. No extended token context is created either. One has to use -ftrack-macro-expansion to switch this on. This complicates the code but I believe it can be useful as some of our friends found out at http://llvm.org/bugs/show_bug.cgi?id=5610 The patch tries to reduce the memory consumption by freeing some token context memory that was being reused before. I didn't notice any compilation slow down due to this immediate freeing on my GNU/Linux system. As no client code tries to resolve virtual locations to anything but what was being done before, no new test case has been added. Co-Authored-By: Dodji Seketeli <dodji@redhat.com> From-SVN: r180082
2011-10-17Linemap infrastructure for virtual locationsTom Tromey23-207/+1767
This is the first instalment of a set which goal is to track locations of tokens across macro expansions. Tom Tromey did the original work and attached the patch to PR preprocessor/7263. This opus is a derivative of that original work. This patch modifies the linemap module of libcpp to add virtual locations support. A virtual location is a mapped location that can resolve to several different physical locations. It can always resolve to the spelling location of a token. For tokens resulting from macro expansion it can resolve to: - either the location of the expansion point of the macro. - or the location of the token in the definition of the macro - or, if the token is an argument of a function-like macro, the location of the use of the matching macro parameter in the definition of the macro The patch creates a new type of line map called a macro map. For every single macro expansion, there is a macro map that generates a virtual location for every single resulting token of the expansion. The good old type of line map we all know is now called an ordinary map. That one still encodes spelling locations as it has always had. As a result linemap_lookup as been extended to return a macro map when given a virtual location resulting from a macro expansion. The layout of structs line_map has changed to support this new type of map. So did the layout of struct line_maps. Accessor macros have been introduced to avoid messing with the implementation details of these datastructures directly. This helped already as we have been testing different ways of arranging these datastructure. Having to constantly adjust client code that is too tied with the internals of line_map and line_maps would have been even more painful. Of course, many new public functions have been added to the linemap module to handle the resolution of virtual locations. This patch introduces the infrastructure but no part of the compiler uses virtual locations yet. However the client code of the linemap data structures has been adjusted as per the changes. E.g, it's not anymore reliable for a client code to manipulate struct line_map directly if it just wants to deal with spelling locations, because struct line_map can now represent a macro map as well. In that case, it's better to use the convenient API to resolve the initial (possibly virtual) location to a spelling location (or to an ordinary map) and use that. This is the reason why the patch adjusts the Java, Ada and Fortran front ends. Also, note that virtual locations are not supposed to be ordered for relations '<' and '>' anymore. To test if a virtual location appears "before" another one, one has to use a new operator exposed by the line map interface. The patch updates the only spot (in the diagnostics module) I have found that was making the assumption that locations were ordered for these relations. This is the only change that introduces a use of the new line map API in this patch, so I am adding a regression test for it only. From-SVN: r180081
2011-10-17re PR c++/48489 (Invalid error message 'has no member named' when referring ↵Paolo Carlini4-1/+28
directly to the base class) /cp 2011-10-17 Paolo Carlini <paolo.carlini@oracle.com> PR c++/48489 * typeck.c (finish_class_member_access_expr): Fix error call for TREE_CODE (access_path) == TREE_BINFO. /testsuite 2011-10-17 Paolo Carlini <paolo.carlini@oracle.com> PR c++/48489 * g++.dg/inherit/error5.C: New. From-SVN: r180080
2011-10-17re PR fortran/47023 (C_Sizeof: Rejects valid code)Janus Weil4-2/+22
2011-10-17 Janus Weil <janus@gcc.gnu.org> PR fortran/47023 PR fortran/50752 * primary.c (match_kind_param): Avoid segfault. 2011-10-17 Janus Weil <janus@gcc.gnu.org> PR fortran/47023 PR fortran/50752 * gfortran.dg/kind_tests_4.f90: New. From-SVN: r180079
2011-10-17vect-21.c: Expect the loops to get vectorized on targets that support vector ↵Ira Rosen2-1/+6
condition. * gcc.dg/vect/vect-21.c: Expect the loops to get vectorized on targets that support vector condition. From-SVN: r180076
2011-10-17Daily bump.GCC Administrator1-1/+1
From-SVN: r180071
2011-10-16Increase the GGC quire size to 2MBAndi Kleen2-1/+5
gcc/: 2011-10-08 Andi Kleen <ak@linux.intel.com> * ggc-page.c (GGC_QUIRE_SIZE): Increase to 512 From-SVN: r180066
2011-10-16Add error checking to lto_section_readAndi Kleen2-2/+13
gcc/lto/: 2011-10-09 Andi Kleen <ak@linux.intel.com> * lto.c (lto_section_read): Call fatal_error on IO or mmap errors. From-SVN: r180065
2011-10-16Rename __gnu_slim_lto to __gnu_lto_slimAndi Kleen2-3/+7
gcc/: 2011-10-13 Andi Kleen <ak@linux.intel.com> * toplev.c (compile_file): Rename __gnu_slim_lto to __gnu_lto_slim. From-SVN: r180064
2011-10-16frontend-passes.c (current_ns): Make static.Thomas Koenig2-2/+23
2011-10-16 Thomas Koenig <tkoenig@gcc.gnu.org> * frontend-passes.c (current_ns): Make static. (create_var): Note parent of newly created namespace. (optimize_namespace): Don't wak sibling namespaces if they are EXEC_BLOCK because this is handled... (gfc_code_walker): ... here. Also walk ASSOCIATE lists. From-SVN: r180063
2011-10-16re PR fortran/47023 (C_Sizeof: Rejects valid code)Janus Weil4-13/+50
2011-10-16 Janus Weil <janus@gcc.gnu.org> PR fortran/47023 * primary.c (match_kind_param): Detect ISO_C_BINDING kinds. (get_kind): Pass on 'is_iso_c' flag. (match_integer_constant,match_real_constant,match_logical_constant): Set 'ts.is_c_interop'. 2011-10-16 Janus Weil <janus@gcc.gnu.org> PR fortran/47023 * gfortran.dg/c_kind_tests_3.f03: New. From-SVN: r180062
2011-10-16re PR fortran/50547 (dummy procedure argument of PURE shall be PURE)Janus Weil4-68/+79
2011-10-16 Janus Weil <janus@gcc.gnu.org> PR fortran/50547 * resolve.c (resolve_formal_arglist): Remove unneeded error message. Some reshuffling. 2011-10-16 Janus Weil <janus@gcc.gnu.org> PR fortran/50547 * gfortran.dg/elemental_args_check_4.f90: New. From-SVN: r180061
2011-10-16re PR tree-optimization/50727 (ICE with segfault in flow_bb_inside_loop_p)Ira Rosen4-0/+34
PR tree-optimization/50727 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Add DEF_STMT to the list of statements to be replaced by the pattern statements. From-SVN: r180060
2011-10-16Move testsuite entries to proper fileEric Botcazou2-4/+5
From-SVN: r180059
2011-10-16re PR rtl-optimization/50615 (ICE: in distribute_notes, at combine.c:13282 ↵Eric Botcazou4-7/+34
with -O --param max-cse-insns=1) PR rtl-optimization/50615 * combine.c (distribute_notes) <REG_ARGS_SIZE>: Skip if I3 is a no-op. From-SVN: r180058
2011-10-16re PR tree-optimization/50596 (Problems in vectorization of condition ↵Jakub Jelinek5-7/+604
expression) PR tree-optimization/50596 * tree-vectorizer.h (NUM_PATTERNS): Increase to 7. * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add vect_recog_bool_pattern. (check_bool_pattern, adjust_bool_pattern_cast, adjust_bool_pattern, vect_recog_bool_pattern): New functions. * gcc.dg/vect/vect-cond-9.c: New test. From-SVN: r180057
2011-10-16[multiple changes]Arnaud Charlet10-57/+109
2011-10-16 Tristan Gingold <gingold@adacore.com> * link.c (_AIX): Add support for GNU ld. 2011-10-16 Fedor Rybin <frybin@adacore.com> * gnat_ugn.texi: Fixing gnattest example names in the doc. Adding explanation to additional tests usage. 2011-10-16 Robert Dewar <dewar@adacore.com> * exp_ch6.adb, sem_ch6.adb: Minor reformatting. 2011-10-16 Eric Botcazou <ebotcazou@adacore.com> * a-convec.adb: Fix minor inconsistencies. 2011-10-16 Matthew Heaney <heaney@adacore.com> * a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (package Implementation): Specify pragma Implementation_Defined. From-SVN: r180056
2011-10-16tree-vect-stmts.c (vectorizable_load): For SLP without permutation treat the ↵Ira Rosen5-34/+233
first load of the node as the first... * tree-vect-stmts.c (vectorizable_load): For SLP without permutation treat the first load of the node as the first element in its interleaving chain. * tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the operands if necessary and possible. (vect_build_slp_tree): Add new argument. Allow load groups of any size in basic blocks. Keep all the loads for further permutation check. Use the new argument to determine if there is a permutation. Update the recursive calls. (vect_supported_load_permutation_p): Allow subchains of interleaving chains in basic block vectorization. (vect_analyze_slp_instance): Update the call to vect_build_slp_tree. Check load permutation based on the new parameter. (vect_schedule_slp_instance): Don't start from the first element in interleaving chain unless the loads are permuted. From-SVN: r180055
2011-10-16re PR middle-end/48668 (COMDAT Group signature not emitted in group)Jan Hubicka2-1/+15
PR target/48668 PR target/50689 * cgraphunit.c (cgraph_expand_function): Expand thunks and alises after function body. From-SVN: r180053
2011-10-16Daily bump.GCC Administrator1-1/+1
From-SVN: r180052
2011-10-15re PR c++/50732 ([type_traits] is_base_of<Base, Derived> unnecessarily ↵Paolo Carlini6-24/+35
instantiates Base (which shouldn't be instantiated)) /cp 2011-10-15 Paolo Carlini <paolo.carlini@oracle.com> PR c++/50732 * semantics.c (finish_trait_expr): Do not try to instantiate the the base type of an __is_base_of trait. (check_trait_type): Return a tree; use complete_type_or_else. /testsuite 2011-10-15 Paolo Carlini <paolo.carlini@oracle.com> PR c++/50732 * g++.dg/ext/is_base_of_incomplete.C: New. * g++.dg/ext/is_base_of_diagnostic.C: Adjust dg-errors. * g++.dg/ext/unary_trait_incomplete.C: Likewise. From-SVN: r180048
2011-10-15Use VEC_PERM_EXPR in the vectorizer.Richard Henderson5-88/+65
* tree-vect-slp.c: Include langhooks.h. (vect_create_mask_and_perm): Emit VEC_PERM_EXPR, not a builtin. (vect_transform_slp_perm_load): Use can_vec_perm_expr_p. Simplify mask creation for VEC_PERM_EXPR. * tree-vect-stmts.c (perm_mask_for_reverse): Return the mask, not the builtin. (reverse_vec_elements): Emit VEC_PERM_EXPR not a builtin. * Makefile.in (tree-vect-slp.o): Update dependency. * optabs.c (can_vec_perm_expr_p): Allow NULL as unknown constant. From-SVN: r180047
2011-10-15* gcc.target/sparc/combined-1.c: Compile at -O2.Eric Botcazou2-1/+5
From-SVN: r180040
2011-10-15* ChangeLog: Fix whitespace.Uros Bizjak1-33/+22
From-SVN: r180039
2011-10-16re PR bootstrap/50738 (Bootstrap failure at revision 180028 on ↵Alan Modra2-1/+7
powerpc-apple-darwin9) PR bootstrap/50738 * ifcvt.c (dead_or_predicable): Revert accidental commit with HAVE_simple_return test. From-SVN: r180038
2011-10-15fma_float_?.c (dg-prune_output): Remove.Uros Bizjak49-96/+60
* gcc.target/i386/fma_float_?.c (dg-prune_output): Remove. (dg-options): Add -Wno-attributes. * gcc.target/i386/fma_double_?.c: Ditto. * gcc.target/i386/fma_run_float_?.c: Ditto. * gcc.target/i386/fma_run_double_?.c: Ditto. * gcc.target/i386/l_fma_float_?.c: Dtto. * gcc.target/i386/l_fma_double_?.c: Ditto. * gcc.target/i386/l_fma_run_float_?.c: Ditto. * gcc.target/i386/l_fma_run_double_?.c: Ditto. From-SVN: r180029
2011-10-15ifcvt.c (dead_or_predicable): Disable if-conversion when doing so is likely ↵Alan Modra2-0/+61
to kill a shrink-wrapping opportunity. * ifcvt.c (dead_or_predicable): Disable if-conversion when doing so is likely to kill a shrink-wrapping opportunity. From-SVN: r180028
2011-10-15re PR rtl-optimization/49941 (segmentation fault in redirect_jump_2)Alan Modra6-13/+33
PR rtl-optimization/49941 * jump.c (mark_jump_label_1): Set JUMP_LABEL for simple_return jumps. * rtl.h (set_return_jump_label): Declare. * function.c (set_return_jump_label): New function, extracted.. (thread_prologue_and_epilogue_insns): ..from here. Use it in another instance to set return jump_label. * cfgrtl.c (force_nonfallthru_and_redirect): Use set_return_jump_label. * reorg.c (find_end_label): Likewise. From-SVN: r180027
2011-10-15lang-specs.h: Ensure -mrtp switch is passed when using either rtp-smp or ↵Nicolas Roche2-1/+6
ravenscar-cert-rtp... 2011-10-15 Nicolas Roche <roche@adacore.com> * gcc-interface/lang-specs.h: Ensure -mrtp switch is passed when using either rtp-smp or ravenscar-cert-rtp runtimes. From-SVN: r180026
2011-10-15[multiple changes]Arnaud Charlet7-22/+42
2011-10-15 Bob Duff <duff@adacore.com> * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): Do not create a pool formal on unless RE_Root_Storage_Pool_Ptr is available. (Expand_N_Extended_Return_Statement): Do not create a renaming of the build-in-place pool parameter unless RE_Root_Storage_Pool_Ptr is available. (Make_Build_In_Place_Call_In_Allocator): Add the user-defined pool only if RE_Root_Storage_Pool_Ptr is available. (Make_Build_In_Place_Call_In_Object_Declaration): Do not add a pool actual unless RE_Root_Storage_Pool_Ptr is available. * sem_ch6.adb (Create_Extra_Formals): Add build-in-place pool formal only if RE_Root_Storage_Pool_Ptr is available. 2011-10-15 Matthew Heaney <heaney@adacore.com> * a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (Queue type): Specify Priority aspect for protected type. From-SVN: r180025
2011-10-15gfortran.texi (Fortran 2008 status, [...]): Update implementation status, ↵Tobias Burnus15-45/+77
change references from TR 29113 to TS 29113. 2011-10-15 Tobias Burnus <burnus@net-b.de> * gfortran.texi (Fortran 2008 status, TS 29113 status, Further Interoperability of Fortran with C): Update implementation status, change references from TR 29113 to TS 29113. * intrinsic.texi (RANK): Change TR 29113 to TS 29113. * invoke.text (-std=): Ditto, change -std=f2008tr to * -std=f2008ts. * lang.opt (std=): Ditto. * options.c (gfc_handle_option, set_default_std_flags): Ditto * and change GFC_STD_F2008_TR to GFC_STD_F2008_TS. * libgfortran.h: Ditto. * intrinsic.c (add_functions, gfc_check_intrinsic_standard): * Ditto. * decl.c (verify_c_interop_param): Ditto. 2011-10-15 Tobias Burnus <burnus@net-b.de> * gfortran.dg/bind_c_usage_23.f90: Change TR 29113 to TS 29113 * in the comments. * gfortran.dg/bind_c_usage_24.f90: Ditto. * gfortran.dg/rank_3.f90: Ditto. * gfortran.dg/bind_c_usage_22.f90: Ditto, change -std=f2008tr to -std=f2008ts in dg-options. * gfortran.dg/rank_4.f90: Ditto. From-SVN: r180024
2011-10-14Fix mv8plus, allow targetting Linux or Solaris from other sparc host.David S. Miller7-25/+174
* config/sparc/sol2.h: Protect -m{cpu,tune}=native handling with a more complete cpp test. * config/sparc/linux64.h: Likewise. * config/sparc/linux.h: Likewise. * config/sparc/sparc.opt (sparc_debug): New target variable. (mdebug): New target option. * config/sparc/sparc.h (MASK_DEBUG_OPTIONS, MASK_DEBUG_ALL, TARGET_DEBUG_OPTIONS): New defines. * config/sparc/sparc.c (debug_target_flag_bits, debug_target_flags): New functions. (sparc_option_override): Add name strings back to cpu_table[]. Parse -mdebug string. When TARGET_DEBUG_OPTIONS is true, print out the target flags before and after override processing as well as the selected cpu. If MASK_V8PLUS, make sure that the selected cpu is at least v9. From-SVN: r180021
2011-10-15re PR target/49263 (SH Target: underutilized "TST #imm, R0" instruction)Oleg Endo5-7/+194
PR target/49263 * config/sh/sh.h (ZERO_EXTRACT_ANDMASK): New macro. * config/sh/sh.c (sh_rtx_costs): Add test instruction case. * config/sh/sh.md (tstsi_t): Name existing insn. Make inner and instruction commutative. (tsthi_t, tstqi_t, tstqi_t_zero, tstsi_t_and_not, tstsi_t_zero_extract_eq, tstsi_t_zero_extract_xor, tstsi_t_zero_extract_subreg_xor_little, tstsi_t_zero_extract_subreg_xor_big): New insns. (*movsicc_t_false, *movsicc_t_true): Replace space with tab in asm output. (*andsi_compact): Reorder alternatives so that K08 is considered first. * gcc.target/sh/pr49263.c: New. From-SVN: r180020
2011-10-15Daily bump.GCC Administrator1-1/+1
From-SVN: r180019
2011-10-14* gnat.dg/specs/debug1.ads: Tweak.Eric Botcazou2-1/+5
From-SVN: r180015
2011-10-14re PR target/50354 (architecture mismatch between compiler and assembler)Eric Botcazou2-1/+16
PR target/50354 * config/sparc/linux64.h (TARGET_DEFAULT): Only override if the default processor is at least V9 and TARGET_64BIT_DEFAULT is defined. From-SVN: r180013
2011-10-14* invoke.texi (AVR Options): Avoid \leq{}.Gerald Pfeifer2-1/+5
From-SVN: r180007
2011-10-14gimplify.c (gimplify_expr): Take care that for bitwise-binary transformation ↵Kai Tietz4-2/+34
the operands have compatible types. * gimplify.c (gimplify_expr): Take care that for bitwise-binary transformation the operands have compatible types. * gfortran.fortran-torture/compile/logical-2.f90: New test. From-SVN: r180006
2011-10-14sse.md (vec_widen_smult_hi_v8hi, [...]): Macroize using VI2_AVX2 mode ↵Jakub Jelinek8-89/+429
iterator and any_extend code iterator. * config/i386/sse.md (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi, vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi): Macroize using VI2_AVX2 mode iterator and any_extend code iterator. (vec_widen_<s>mult_hi_v8si, vec_widen_<s>mult_lo_v8si): New expanders. (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si): Enable also for TARGET_SSE4_1 using pmuldq insn. (sdot_prodv8hi): Macroize using VI2_AVX2 iterator. (sse2_sse4_1): New code attr. (udot_prodv4si): Macroize using any_extend code iterator. (<s>dot_prodv8si): New expander. * gcc.target/i386/sse2-mul-1.c: New test. * gcc.target/i386/sse4_1-mul-1.c: New test. * gcc.target/i386/avx-mul-1.c: New test. * gcc.target/i386/xop-mul-1.c: New test. * gcc.target/i386/avx2-mul-1.c: New test. From-SVN: r180005
2011-10-14fix PR tagJason Merrill2-2/+2
From-SVN: r180004
2011-10-14re PR c++/50563 ([C++0x] Weird syntax acceptance rules for non-static data ↵Jason Merrill4-1/+29
members initialized in place) PR c++/50563 * parser.c (cp_parser_cache_group): Handle end==CPP_COMMA. (cp_parser_save_nsdmi): Pass it. From-SVN: r180003
2011-10-14re PR c++/50707 ([C++0x] Non-static const data member initializer breaks ↵Jason Merrill4-19/+40
default constructor) PR c++/50507 * method.c (walk_field_subobs): Check for NSDMI before complaining about uninitialized fields. From-SVN: r180002
2011-10-14pt.c (tsubst_decl): Use void_zero_node instead of error_mark_node as a ↵Jason Merrill2-2/+7
placeholder. * pt.c (tsubst_decl) [FIELD_DECL]: Use void_zero_node instead of error_mark_node as a placeholder. From-SVN: r180001
2011-10-14re PR fortran/50570 (Incorrect error for assignment to intent(in) pointer)Janus Weil4-1/+36
2011-10-14 Janus Weil <janus@gcc.gnu.org> PR fortran/50570 * expr.c (gfc_check_vardef_context): Don't throw an error on non-pointer assignments involving an intent(in) pointer dummy. 2011-10-14 Janus Weil <janus@gcc.gnu.org> PR fortran/50570 * gfortran.dg/pointer_intent_5.f90: New. From-SVN: r180000
2011-10-14Changed cost for loading QImode using movzbl.Yakovlev Vladimir2-1/+6
2011-10-14 Yakovlev Vladimir <vladimir.b.yakovlev@intel.com> * config/i386/i386.c (atom_cost): Changed cost for loading QImode using movzbl. From-SVN: r179999
2011-10-14Fix typo in my last changeMichael Meissner2-2/+7
From-SVN: r179998
2011-10-14sse.md (vec_interleave_high<mode>, [...]): Add AVX2 expanders for VI_256 modes.Jakub Jelinek3-0/+119
* config/i386/sse.md (vec_interleave_high<mode>, vec_interleave_low<mode>): Add AVX2 expanders for VI_256 modes. * config/i386/i386.c (expand_vec_perm_interleave3): New function. (ix86_expand_vec_perm_builtin_1): Call it. From-SVN: r179995