1 2010-01-10 Steven Bosscher <steven@gcc.gnu.org>
3 PR rtl-optimization/42621
4 * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
6 (duplicate_computed_gotos): Remove now-redundant check.
8 2010-01-10 Steve Ellcey <sje@cup.hp.com>
11 * configure.ac: Save and restore LDFLAGS and LIBS
12 * configure: Regenerate.
14 2010-01-10 Richard Guenther <rguenther@suse.de>
17 * builtins.c (fold_builtin_strlen): Add type argument and
18 convert the resulting length to it.
19 (fold_builtin_1): Adjust.
21 2010-01-09 Jakub Jelinek <jakub@redhat.com>
23 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
24 sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
26 (num_insns_constant_wide): Adjust for that change.
28 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
31 * web.c (union_defs): Add used argument, to combine uses of
33 (entry_register): Adjust type and tests of used argument.
34 (web_main): Widen used for new use. Pass it to union_defs.
35 * df.h (union_defs): Adjust prototype.
37 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
40 * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
41 uses in new incoming argument. Free body.
42 (reset_debug_uses_in_loop): New.
43 (analyze_insn_to_expand_var): Call the latter if the former found
44 anything. Fix whitespace. Reject invalid dest overlaps before
45 going through all insns in the loop.
47 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
50 * haifa-sched.c (dying_use_p): Debug insns don't count.
52 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
55 * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
56 * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
57 (verify_gimple_call): Reject LHS in noreturn calls.
59 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
63 * tree-vect-loop-manip.c (adjust_info): New type.
64 (adjust_vec): New pointer to vector.
65 (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
66 (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
67 (slpeel_update_phis_for_duplicate_loop): Use them.
68 (slpeel_update_phi_nodes_for_guard1): Likewise.
69 (slpeel_update_phi_nodes_for_guard2): Likewise.
70 (slpeel_tree_peel_loop_to_edge): Likewise.
71 (vect_update_ivs_after_vectorizer): Likewise.
73 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
75 * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
76 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
78 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
80 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
81 bogus uninitialized warning.
83 2010-01-09 Richard Guenther <rguenther@suse.de>
86 * tree-scalar-evolution.c (interpret_loop_phi): Make sure
87 the evolution is compatible with the initial condition.
89 2010-01-09 Jakub Jelinek <jakub@redhat.com>
91 * gcc.c (process_command): Update copyright notice dates.
92 * gcov.c (print_version): Likewise.
93 * gcov-dump.c (print_version): Likewise.
94 * mips-tfile.c (main): Likewise.
95 * mips-tdump.c (main): Likewise.
97 2010-01-08 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
100 * avr.md (rotlqi3): Add CONST_INT_P check.
105 (rotlsi3_16): Delete.
106 (rotlsi3_24): Delete.
110 * avr.c (avr_rotate_bytes): New function.
111 * avr-proto.h (avr_rotate_bytes): New function.
113 2010-01-08 Steve Ellcey <sje@cup.hp.com>
116 * configure.ac: Modify -rdynamic check.
117 * configure: Regenerate.
119 2010-01-08 DJ Delorie <dj@redhat.com>
121 * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
122 register popping order.
124 2010-01-08 Richard Guenther <rguenther@suse.de>
127 * c.opt (fsigned-char): Also let LTO handle this option.
128 (funsigned-char): Likewise.
130 2010-01-07 Richard Guenther <rguenther@suse.de>
132 * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
133 (gimple_op): Likewise.
134 (gimple_op_ptr): Likewise.
135 (gimple_assign_set_lhs): Remove gcc_assert.
136 (gimple_assign_set_rhs1): Likewise.
137 (gimple_assign_set_rhs2): Likewise.
138 (gimple_call_set_lhs): Likewise.
139 (gimple_call_set_fn): Likewise.
140 (gimple_call_set_fndecl): Likewise.
141 (gimple_call_fndecl): Likewise.
142 (gimple_call_return_type): Likewise.
143 (gimple_call_set_chain): Likewise.
144 (gimple_call_num_args): Likewise.
145 (gimple_call_set_arg): Likewise.
146 (gimple_cond_set_code): Likewise.
147 (gimple_cond_set_lhs): Likewise.
148 (gimple_cond_set_rhs): Likewise.
149 (gimple_cond_set_true_label): Likewise.
150 (gimple_cond_set_false_label): Likewise.
151 (gimple_label_set_label): Likewise.
152 (gimple_goto_set_dest): Likewise.
153 (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
154 (gimple_debug_bind_get_value): Likewise.
155 (gimple_debug_bind_get_value_ptr): Likewise.
156 (gimple_debug_bind_set_var): Likewise.
157 (gimple_debug_bind_set_value): Likewise.
158 (gimple_debug_bind_reset_value): Likewise.
159 (gimple_debug_bind_has_value_p): Likewise.
160 (gimple_return_retval_ptr): Remove gcc_assert.
161 (gimple_return_retval): Likewise.
162 (gimple_return_set_retval): Likewise.
163 * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
164 (safe_referenced_var_iterator): Remove.
165 (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
166 * tree-flow-inline.h (gimple_nonlocal_all): Remove.
167 (fill_referenced_var_vec): Remove.
168 (first_readonly_imm_use): Remove redundant gcc_assert.
169 (phi_arg_index_from_use): Combine gcc_asserts.
170 (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
171 (first_imm_use_stmt): Remove redundant gcc_assert.
172 * tree-cfg.c (verify_gimple_call): Verify function and chain
173 operands. Verify arguments.
174 (verify_types_in_gimple_stmt): Verify condition code and labels.
176 2010-01-07 Richard Guenther <rguenther@suse.de>
178 PR tree-optimization/42641
179 * sese.c (rename_map_elt_info): Use the SSA name version, do
182 2010-01-07 Jakub Jelinek <jakub@redhat.com>
184 PR tree-optimization/42625
185 * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
186 TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body
189 2010-01-07 Duncan Sands <baldrick@free.fr>
191 * Makefile.in (PLUGIN_HEADERS): Add version.h.
193 2010-01-07 Uros Bizjak <ubizjak@gmail.com>
196 * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
197 note itself is not function_invariant_p.
199 2009-01-07 Steven Bosscher <steven@gcc.gnu.org>
201 * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
202 Do not add the DF_NOTE problem.
203 * store-motion.c (execute_rtl_store_motion): Likewise.
205 2010-01-07 Martin Jambor <mjambor@suse.cz>
207 PR tree-optimization/42157
208 * tree-sra.c (compare_access_positions): Stabilize sort if both
209 accesses have integer types, return zero immediately if they are the
212 2010-01-06 Richard Henderson <rth@redhat.com>
215 * haifa-sched.c (add_to_note_list): Merge into ...
216 (concat_note_lists): ... here, and ...
217 (unlink_other_notes, rm_other_notes): Merge into...
218 (remove_notes): ... here. Create REG_SAVE_NOTEs for
219 NOTE_INSN_EPILOGUE_BEG.
221 2010-01-06 Richard Guenther <rguenther@suse.de>
223 * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
224 not inline regular functions into always-inline functions.
226 2010-01-06 Nick Clifton <nickc@redhat.com>
228 * config/rx/rx.h (enum rx_cpu_type): Add RX200.
229 (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
231 (OVERRIDE_OPTIONS): Delete.
232 (OPTIMIZATION_OPTIONS): Define.
233 (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
234 * config/rx/rx.c (rx_handle_option): Issue an error message if
235 -mcpu=rx200 and -fpu are used together.
236 (rx_set_optimization_options): New function. Issue an error
237 message if an optimization attribute attempts to reset the FPU/
238 math optimization pairing.
239 * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
240 * config/rx/rx.opt: Set the default to 32-bit doubles.
241 * config/rx/t-rx: Add multilibs for -nofpu option.
242 * doc/invoke.texi: Update documentation of RX options.
244 2010-01-06 Richard Guenther <rguenther@suse.de>
246 * tree-ssa-pre.c (name_to_id): New global.
247 (alloc_expression_id): Simplify SSA name handling.
248 (lookup_expression_id): Likewise.
249 (init_pre): Zero name_to_id.
252 2010-01-06 Uros Bizjak <ubizjak@gmail.com>
254 * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
256 2010-01-05 H.J. Lu <hongjiu.lu@intel.com>
259 * config/i386/sse.md (smaxv2di3): New.
260 (umaxv2di3): Likewise.
261 (sminv2di3): Likewise.
262 (uminv2di3): Likewise.
264 2010-01-05 Eric Botcazou <ebotcazou@adacore.com>
267 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
268 * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
269 (legitimize_tls_address): Likewise.
270 (sparc_tls_referenced_p): Likewise.
271 * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
272 and adjust calls to legitimize_pic_address.
273 (legitimate_constant_p) Use sparc_tls_referenced_p.
274 (legitimate_pic_operand_p): Likewise.
275 (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
276 (sparc_tls_symbol_ref_1): Delete.
277 (sparc_tls_referenced_p): Make static, recognize specific patterns.
278 (legitimize_tls_address): Make static, handle CONST patterns.
279 (legitimize_pic_address): Make static, remove unused parameter and
280 adjust recursive calls.
281 (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
282 and adjust call to legitimize_pic_address.
283 (sparc_output_mi_thunk): Likewise.
285 2010-01-05 Paolo Bonzini <bonzini@gnu.rg>
286 H.J. Lu <hongjiu.lu@intel.com>
289 * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
290 for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
291 operands to make them signed.
294 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
297 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
298 GTU to GT for V4SI and V2DI.
300 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
301 (umin<mode>3): Removed.
303 (uminv4si3): Likewise.
305 2010-01-05 Martin Jambor <mjambor@suse.cz>
307 PR tree-optimization/42462
308 * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
309 current_function_decl to helper functions and macros.
311 2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
314 * flags.h: Don't include real.h.
315 (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
316 HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
317 * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
318 HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
319 * dominance.c: Update copyright.
320 * gimple.c (walk_gimple_op): Remove inline.
321 * tree-ssa-reassoc.c: Include real.h.
322 * Makefile.in (FLAGS_H): Remove $(REAL_H).
323 (tree-ssa-reassoc.o): Depend on $(REAL_H).
325 2010-01-05 Nick Clifton <nickc@redhat.com>
327 * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
328 register to push into the stack frame when the accumulator has to
329 be saved during interrupts.
331 2010-01-05 Eric Fisher <joefoxreal@gmail.com>
333 * doc/invoke.texi: Remove the documentation about option
335 * common.opt (Wunreachable-code): Preserved for backward
337 * tree-cfg.c: Remove the implementation of -Wunreachable-code.
338 * opts.c (common_handle_option): Add OPT_Wunreachable_code to
339 the backward compatibility flag section.
341 2010-01-05 Richard Guenther <rguenther@suse.de>
343 * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
345 2010-01-05 Jakub Jelinek <jakub@redhat.com>
348 * cfgexpand.c (expand_one_var): Diagnose too large variables.
350 PR tree-optimization/42508
351 * tree-sra.c (convert_callers): Check for recursive call
352 by comparing cgraph nodes instead of decls.
353 (modify_function): Call ipa_modify_formal_parameters also
354 on all same_body aliases.
356 * cgraphunit.c (cgraph_materialize_all_clones): Compare
357 cgraph nodes when checking for same_body aliases.
359 2010-01-05 Richard Guenther <rguenther@suse.de>
361 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
362 allocation and lookup.
363 (get_or_alloc_expr_for_constant): Likewise.
364 (phi_translate): Sink allocation.
366 2010-01-04 Richard Guenther <rguenther@suse.de>
368 * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
369 a new entry only if needed.
370 * tree-ssa-dom.c (lookup_avail_expr): Likewise.
371 * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
373 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
375 (phi_translate): Handle CONSTANTs early.
377 2010-01-04 Martin Jambor <mjambor@suse.cz>
379 PR tree-optimization/42398
380 * tree-sra.c (struct access): Removed flag grp_different_types.
381 (dump_access): Do not dump the removed flag.
382 (sort_and_splice_var_accesses): Do not set the removed flag.
383 (sra_modify_expr): Check for type compatibility directly.
385 2010-01-04 Martin Jambor <mjambor@suse.cz>
387 PR tree-optimization/42366
388 * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
389 edges with variable number of parameters.
390 * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
391 flag instead of asserting it.
392 (ipa_read_node_info): Read uses_analysis_done flag.
394 2010-01-04 Richard Guenther <rguenther@suse.de>
396 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
397 iterative_hash_* as intended.
398 (vn_reference_compute_hash): Likewise. Simplify hashing
400 (vn_reference_lookup_2): Likewise.
401 (vn_nary_op_compute_hash): Likewise.
402 (vn_phi_compute_hash): Likewise.
403 (expressions_equal_p): Remove strange code.
404 * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
405 (pre_expr_hash): Likewise. Simplify hashing SSA names.
406 (bitmap_insert_into_set_1): Take value-id as parameter.
407 (add_to_value): Pass it.
408 (bitmap_insert_into_set): Likewise.
409 (bitmap_value_insert_into_set): Likewise. Remove redundant check.
411 2010-01-04 Jakub Jelinek <jakub@redhat.com>
414 * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
415 (do_self_spec): For switches with SWITCH_IGNORE set set also
416 SWITCH_IGNORE_PERMANENTLY.
417 (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
420 2010-01-04 Rafael Avila de Espindola <espindola@google.com>
422 * lto-streamer-out.c (output_unreferenced_globals): Output the full
423 tree of an unreferenced global var.
425 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
428 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
429 GTU to GT for V4SI and V2DI.
431 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
432 (umin<mode>3): Removed.
434 (uminv4si3): Likewise.
436 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
439 * collect2.c (main): Turn on trace in collect2 if -v is passed
442 2010-01-03 Jerry Quinn <jlquinn@optonline.net>
444 * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR. Update
445 description of expression operand.
447 2010-01-03 Andrew Jenner <andrew@codesourcery.com>
449 * configure.ac: Add install-html to target_list for Make-hooks.
450 * configure: Regenerate.
451 * fortran/Make-lang.in (F95_HTMLFILES): New.
452 (fortran.html): Use it.
453 (fortran.install-html): New.
454 * Makefile.in (install-html): Add lang.install-html.
455 * java/Make-lang.in (JAVA_HTMLFILES): New.
457 (java.install-html): New.
458 * objc/Make-lang.in (objc.install-html): New.
459 * objcp/Make-lang.in (obj-c++.install-html): New.
460 * cp/Make-lang.in (c++.install-html): New.
461 * ada/gcc-interface/Make-lang.in (ada.install-html): New.
462 * lto/Make-lang.in (lto.install-html): New.
464 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
467 * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
469 2009-01-03 Steven Bosscher <steven@gcc.gnu.org>
471 PR rtl-optimization/41862
472 * store-motion.c (store_killed_in_insn, compute_store_table,
473 remove_reachable_equiv_notes, replace_store_insn,
474 build_store_vectors): Ignore all DEBUG_INSNs.
476 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
479 * common.opt: Add dumpdir.
481 * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
483 (option_map): Add --dumpdir.
485 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
487 * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
489 * opts.c (decode_options): Try dump_dir_name first if
490 dump_base_name isn't an absolute path.
491 (common_handle_option): Handle OPT_dumpdir.
493 * toplev.c (dump_dir_name): New.
494 (print_switch_values): Also ignore -dumpdir.
496 * toplev.h (dump_dir_name): New.
498 2010-01-03 Richard Guenther <rguenther@suse.de>
500 PR tree-optimization/42589
501 * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
502 double-word expansion of bswap32.
504 2010-01-03 Steven Bosscher <steven@gcc.gnu.org>
506 * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
508 * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
509 * ifcvt.c (noce_get_alt_condition, noce_try_abs,
510 noce_process_if_block): Likewise.
511 * gcse.c (compute_local_properties, insert_expr_in_table,
512 insert_set_in_table, canon_list_insert, find_avail_set,
513 pre_insert_copy_insn): Likewise.
515 * basic-block.h (BLOCK_NUM): Move from here...
516 * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
518 2010-01-03 Richard Guenther <rguenther@suse.de>
520 PR tree-optimization/42438
521 * tree-ssa-pre.c (struct bb_bitmap_sets): Add
522 contains_may_not_return_call flag.
523 (BB_MAY_NOTRETURN): New.
524 (valid_in_sets): Trapping nary operations are not valid
525 in blocks that may not return.
526 (insert_into_preds_of_block): Remove check for trapping
528 (compute_avail): Compute also BB_MAY_NOTRETURN.
530 2010-01-03 Gerald Pfeifer <gerald@pfeifer.com>
532 * doc/invoke.texi: Add 2010 to copyright years.
534 2010-01-03 Eric Botcazou <ebotcazou@adacore.com>
536 * config/sparc/sparc.c: Fix formatting nits.
538 2010-01-02 Gerald Pfeifer <gerald@pfeifer.com>
539 Alexander Monakov <amonakov@ispras.ru>
541 * doc/invoke.texi (Optimize Options): Reword introduction a bit.
543 2010-01-02 Richard Guenther <rguenther@suse.de>
546 * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
547 (simplify_switch_using_ranges): Mark to be removed edges
550 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
552 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
554 * collect2.c (scan_libraries): Add missing argument in call to
557 2010-01-02 Uros Bizjak <ubizjak@gmail.com>
560 * config/alpha/predicates.md (aligned_memory_operand): Return false
562 (unaligned_memory_operand): Return true for CQImode.
563 * config/alpha/alpha.c (get_aligned_mem): Assert that location
564 doesn not cross aligned SImode word boundary.
566 2010-01-02 Anatoly Sokolov <aesok@post.ru>
568 * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
570 * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
571 avr_change_section, avr_reg_class_from_letter) : Remove declaration.
573 2010-01-02 Richard Guenther <rguenther@suse.de>
576 * toplev.c (compile_file): Emit LTO marker properly. Change
578 * collect2.c (scan_prog_file): Adjust for changed LTO marker.
580 2010-01-01 Richard Guenther <rguenther@suse.de>
583 * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
585 2010-01-01 Richard Guenther <rguenther@suse.de>
588 * c-decl.c (grokdeclarator): For zero-size arrays force
589 structural equality checks as layout_type does.
591 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
593 * builtins.c: Update copyright to 2010.
595 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
598 * lto-streamer-out.c (produce_asm): Revert the last change.
599 (copy_function): Likewise.
601 * lto-streamer.c (lto_get_section_name): Skip any leading
604 2010-01-01 Richard Guenther <rguenther@suse.de>
607 * builtins.c (get_object_alignment): Do not use DECL_ALIGN
611 Copyright (C) 2010 Free Software Foundation, Inc.
613 Copying and distribution of this file, with or without modification,
614 are permitted in any medium without royalty provided the copyright
615 notice and this notice are preserved.