summaryrefslogtreecommitdiff
path: root/gcc/ChangeLog.google-4_7
blob: c60377a715a4632d0aff6305592114c8e0640fce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
2010-12-01  Xinliang David Li  <davidxl@google.com>

	Backport r194038 from trunk

        * config/i386/i386.c: Allow sign extend instructions (cltd etc)
        on modern CPUs.

2012-12-01  Dehao Chen  <dehao@dehao.com>

	* cgraphbuild.c (build_cgraph_edges): Handle AutoFDO profile.
	(rebuild_cgraph_edges): Likewise.
	* cgraph.c (cgraph_clone_node): Likewise.
	(clone_function_name): Likewise.
	* cgraph.h (cgraph_node): New field.
	* tree-pass.h (pass_ipa_auto_profile): New pass.
	* cfghooks.c (make_forwarder_block): Handle AutoFDO profile.
	* ipa-inline-transform.c (clone_inlined_nodes): Likewise.
	* toplev.c (compile_file): Likewise.
	(process_options): Likewise.
	* debug.h (auto_profile_debug_hooks): New.
	* cgraphunit.c (cgraph_finalize_compilation_unit): Handle AutoFDO
	profile.
	(cgraph_copy_node_for_versioning): Likewise.
	* regs.h (REG_FREQ_FROM_BB): Likewise.
	* gcov-io.h: (GCOV_TAG_AFDO_FILE_NAMES): New.
	(GCOV_TAG_AFDO_FUNCTION): New.
	(GCOV_TAG_AFDO_MODULE_GROUPING): New.
	* ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Handle AutoFDO profile.
	* ipa-inline.c (edge_hot_enough_p): Likewise.
	(edge_badness): Likewise.
	(inline_small_functions): Likewise.
	* dwarf2out.c (auto_profile_debug_hooks): New.
	* opts.c (common_handle_option): Handle AutoFDO profile.
	* timevar.def (TV_IPA_AUTOFDO): New.
	* predict.c (compute_function_frequency): Handle AutoFDO profile.
	(rebuild_frequencies): Handle AutoFDO profile.
	* auto-profile.c (struct gcov_callsite_pos): New.
	(struct gcov_callsite): New.
	(struct gcov_stack): New.
	(struct gcov_function): New.
	(struct afdo_bfd_name): New.
	(struct afdo_module): New.
	(afdo_get_filename): New.
	(afdo_get_original_name_size): New.
	(afdo_get_bfd_name): New.
	(afdo_read_bfd_names): New.
	(afdo_stack_hash): New.
	(afdo_stack_eq): New.
	(afdo_function_hash): New.
	(afdo_function_eq): New.
	(afdo_bfd_name_hash): New.
	(afdo_bfd_name_eq): New.
	(afdo_bfd_name_del): New.
	(afdo_module_hash): New.
	(afdo_module_eq): New.
	(afdo_module_num_strings): New.
	(afdo_add_module): New.
	(read_aux_modules): New.
	(get_inline_stack_size_by_stmt): New.
	(get_inline_stack_size_by_edge): New.
	(get_function_name_from_block): New.
	(get_inline_stack_by_stmt): New.
	(get_inline_stack_by_edge): New.
	(afdo_get_function_count): New.
	(afdo_set_current_function_count): New.
	(afdo_add_bfd_name_mapping): New.
	(afdo_add_copy_scale): New.
	(get_stack_count): New.
	(get_stmt_count): New.
	(afdo_get_callsite_count): New.
	(afdo_get_bb_count): New.
	(afdo_annotate_cfg): New.
	(read_profile): New.
	(process_auto_profile): New.
	(init_auto_profile): New.
	(end_auto_profile): New.
	(afdo_find_equiv_class): New.
	(afdo_propagate_single_edge): New.
	(afdo_propagate_multi_edge): New.
	(afdo_propagate_circuit): New.
	(afdo_propagate): New.
	(afdo_calculate_branch_prob): New.
	(auto_profile): New.
	(gate_auto_profile_ipa): New.
	(struct simple_ipa_opt_pass): New.
	* auto-profile.h (init_auto_profile): New.
	(end_auto_profile): New.
	(process_auto_profile): New.
	(afdo_set_current_function_count): New.
	(afdo_add_bfd_name_mapping): New.
	(afdo_add_copy_scale): New.
	(afdo_calculate_branch_prob): New.
	(afdo_get_callsite_count): New.
	(afdo_get_bb_count): New.
	* profile.c (compute_branch_probabilities): Handle AutoFDO profile.
	(branch_prob): Likeise.
	* loop-unroll.c (decide_unroll_runtime_iterations): Likewise.
	* coverage.c (coverage_init): Likewise.
	* tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
	* common.opt (fauto-profile): New.
	* tree-inline.c (copy_bb): Handle AutoFDO profile.
	(copy_edges_for_bb): Likewise.
	(copy_cfg_body): Likewise.
	* tree-profile.c (direct_call_profiling): Likewise.
	(gate_tree_profile_ipa): Likewise.
	* basic-block.h (EDGE_ANNOTATED): New field.
	(BB_ANNOTATED): New field.
	* tree-cfg.c (gimple_merge_blocks): Handle AutoFDO profile.
	* passes.c (init_optimization_passes): Handle AutoFDO profile.

2012-11-27  Dehao Chen  <dehao@google.com>

	Backport 193857 from trunk:

	2012-11-27  Dehao Chen  <dehao@google.com>

		* ipa-prop.c (ipa_modify_call_arguments): Set loc correctly.
		* cfglayout.c (last_location): Remove unused variable.

2012-11-27  Dehao Chen  <dehao@google.com>

	Backport 193852 from trunk:

	2012-11-27  Dehao Chen  <dehao@google.com>

		* cfgrtl.c (rtl_merge_blocks): Check with UNKNOWN_LOCATION
		correctly.
		(cfg_layout_merge_blocks): Likewise.

2012-11-26   Easwaran Raman <eraman@google.com>

	Backport 193554 from trunk:

	2012-11-16  Jakub Jelinek  <jakub@redhat.com>
	
		* config/i386/i386.md (mov<mode>cc): Use comparison_operator
		instead of ordered_comparison_operator resp.
		ix86_fp_comparison_operator predicates.
		* config/i386/i386.c (ix86_expand_fp_movcc): Reject TImode
		or for -m32 DImode comparisons.

2012-11-26  Diego Novillo  <dnovillo@google.com>

	Backport from gcc-4_7-branch r193816.

	2012-11-26  Richard Biener  <rguenther@suse.de>

		Backport from mainline
		2012-10-19  Richard Biener  <rguenther@suse.de>

		PR tree-optimization/54976
		* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
		Robustify against odd inner_mode inputs.

		2012-10-12  Richard Biener  <rguenther@suse.de>

		PR tree-optimization/54894
		* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
		Handle over-aligned scalar types properly.

		2012-10-02  Richard Guenther  <rguenther@suse.de>

		PR middle-end/54735
		* tree-ssa-pre.c (do_pre): Make sure to update
		virtual SSA form before cleaning up the CFG.

2012-11-26  Diego Novillo  <dnovillo@google.com>

	* gimplify.c: Work around for PR 55245.

2012-11-09  Harshit Chopra  <harshit@google.com>

	Backport 193381 from google/main.

        * gcc/c-family/c-common.c (handle_always_patch_for_instrumentation_attribute):
	Handle always_patch_for_instrumentation attribute and turn inlining off for
	the function.
        (handle_never_patch_for_instrumentation_attribute): Handle
	never_patch_for_instrumentation attribute of a function.
        * gcc/config/i386/i386.c (has_attribute): Checks the presence of an
	attribute.
        (check_should_patch_current_function): Takes into account
	always_patch_for_instrumentation or never_patch_for_instrumentation attribute
	when deciding that a function should be patched.
        * gcc/testsuite/gcc.target/i386/patch-functions-force-no-patching.c (int main):
	Test case to test for never_patch_for_instrumentation attribute.
        * gcc/testsuite/gcc.target/i386/patch-functions-force-patching.c: Test
	case to test for always_patch_for_instrumentation attribute.

2012-11-05  Dehao Chen  <dehao@google.com>

	Backport 193169, 193137 and 193053 from trunk:

	* tree-eh.c (do_return_redirection): Set location for jump statement.
	(do_goto_redirection): Likewise.
	(frob_into_branch_around): Likewise.
	(lower_try_finally_nofallthru): Likewise.
	(lower_try_finally_copy): Likewise.
	(lower_try_finally_switch): Likewise.
	* expr.c (store_expr): Use current insn location instead of expr
	location.
	(expand_expr_real): Likewise.
	(expand_expr_real_1): Likewise.
	* cfglayout.c (reemit_insn_block_notes): Do not change scope if insn
	location is UNKNOWN_LOCATION.

2012-11-01   Easwaran Raman <eraman@google.com>

	Backport 191302 and 192651 from trunk:

	2012-09-14  Eric Botcazou  <ebotcazou@adacore.com>
	
		PR rtl-optimization/44194
		* calls.c (expand_call): In the PARALLEL case, copy the return value
		into pseudos instead of spilling it onto the stack.
		* emit-rtl.c (adjust_address_1): Rename ADJUST into ADJUST_ADDRESS and
		add new ADJUST_OBJECT parameter.
		If ADJUST_OBJECT is set, drop the underlying object if it cannot be
		proved that the adjusted memory access is still within its bounds.
		(adjust_automodify_address_1): Adjust call to adjust_address_1.
		(widen_memory_access): Likewise.
		* expmed.c (store_bit_field_1): Call adjust_bitfield_address instead
		of adjust_address.  Do not drop the underlying object of a MEM.
		(store_fixed_bit_field): Likewise.
		(extract_bit_field_1): Likewise.  Fix oversight in recursion.
		(extract_fixed_bit_field): Likewise.
		* expr.h (adjust_address_1): Adjust prototype.
		(adjust_address): Adjust call to adjust_address_1.
		(adjust_address_nv): Likewise.
		(adjust_bitfield_address): New macro.
		(adjust_bitfield_address_nv): Likewise.
		* expr.c (expand_assignment): Handle a PARALLEL in more cases.
		(store_expr): Likewise.
		(store_field): Likewise.
	
		* dse.c: Fix typos in the head comment.
	2012-10-21  Eric Botcazou  <ebotcazou@adacore.com>
	
		PR rtl-optimization/44194
		* calls.c (expand_call): Allow sibling calls in the PARALLEL case.

2012-10-25  Dehao Chen  <dehao@google.com>

	Backport r191810 from trunk.

	* cfglayout.c (fixup_reorder_chain): Compare locus against
	UNKNOWN_LOCATION.

2012-10-20   Xinliang David Li  <davidxl@google.com>

	* dwarf2out.c: change functdef etc to be long time.
	* function.h: Make FUNC_LABEL_ID 64 bit if possible.

2012-10-19   Easwaran Raman <eraman@google.com>

	* tree-ssa-reassoc.c (assign_uids): New function.
	(assign_uids_in_relevant_bbs): Likewise.
	(ensure_ops_are_available): Likewise.
	(rewrite_expr_tree): Do not move statements beyond what is
	necessary.Remove call to swap_ops_for_binary_stmt...
	(reassociate_bb): ... and move it here.

2012-10-19   Xinliang David Li  <davidxl@google.com>

	* dwarf2out.c (get_subprogram_die): Use FUNC_LABEL_ID instead
	of current_function_funcdef_no to synthysize label name.

2012-10-19  Teresa Johnson  <tejohnson@google.com>

	Backport r192624 from google/main.

	2012-10-19  Teresa Johnson  <tejohnson@google.com>

	* ree.c (add_removable_extension): Remove unnecessary
        mode check with other extension.
	* testsuite/gcc.c-torture/execute/20111227-2.c: New test.
	* testsuite/gcc.c-torture/execute/20111227-3.c: Ditto.

2012-10-18   Easwaran Raman <eraman@google.com>

	Backport r183817 from google/gcc-4_6 branch.

	2012-02-01  Easwaran Raman  <eraman@google.com>
	
		* expr.c (do_tablejump): Add default_probability as the
		sixth parameter and use it to generate REG_BR_PROB note.
		(try_tablejump): Add default_probability as a parameter.
		* cfgbuild.c (non_zero_profile_counts): New function.
		(compute_outgoing_frequencies): If edges have profile counts
		set, don't replace them with guessed values.
		* expr.h (try_tablejump): Add additional parameter to the
		declaration.
		* stmt.c (tree-flow.h): Include.
		(case_node): Add new fields count and subtree_count.
		(add_case_node): Pass count as a paramater and initialize
		count field of case_node.
		(case_probability): New macro.
		(expand_case): Propagate profile information from the tree
		level to RTL during switch case expansion.
		(balance_case_nodes): Compute subtree_count for case nodes.
		(emit_case_nodes): Set branch probabilities for generated
		branches.

2012-10-16   DeLesley Hutchins  <delesley@google.com>

	common.opt:
	Add clang thread safety warning flags as supported, but ignored.
	(-Wthread-safety-analysis/attributes/precise)

2012-10-10  Dehao Chen  <dehao@google.com>

	Backport 192285 from trunk:

	2012-10-10  Dehao Chen  <dehao@google.com>

	* tree-eh.c (lower_try_finally_onedest): Set correct location for
	deallocator.
	* gimplify.c (gimplify_expr): Set correct location for TRY stmt.

2012-10-10  Diego Novillo  <dnovillo@google.com>

	Merge from gcc-4_7-branch rev 192176.

	Rollback revisions 190375 and 190601 (TM backports).

2012-10-09  Harshit Chopra  <harshit@google.com>

	Backport 192231 from google/main:

	2012-09-28  Harshit Chopra  <harshit@google.com>

        * gcc/config/i386/i386.c (ix86_output_function_nops_prologue_epilogue):
	Emit relative address to function patch sections.

2012-10-09  Rong Xu <xur@google.com>

	Google Ref: b/7049102.
	* gcc.dg/tree-ssa/vrp1.c: New testcase.

2012-10-09  Rong Xu <xur@google.com>

	Google Ref: b/7049102.
	Backport r190291 from trunk.

	2012-08-10  Richard Guenther  <rguenther@suse.de>

		PR tree-optimization/54109
		* tree-ssa-forwprop.c
		(forward_propagate_addr_into_variable_array_index): Remove.
		(forward_propagate_addr_expr_1): Adjust.

		* gcc.dg/torture/pr54109.c: New testcase.
		* gcc.dg/tree-ssa/forwprop-1.c: Adjust.
		* gcc.dg/tree-ssa/forwprop-2.c: Likewise.

2012-10-08  Dehao Chen  <dehao@google.com>

	Backport 191931, 192049, 192120, 192165 from trunk.

	* tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Use
	LOCATION_LOCUS to compare with UNKNOWN_LOCATION.
	(slpeel_tree_peel_loop_to_edge): Likewise.
	* tree-vectorizer.c (vectorize_loops): Likewise.
	* tree-cfg.c (move_block_to_fn): Update lexical block for phi_args.
	* tree-ssa-live.c (clear_unused_block_pointer_1): Look at
	DECL_DEBUG_EXPR again.
	* gimple-low.c (lower_stmt): Set the block for call args.

2012-10-08  Dehao Chen  <dehao@google.com>

	Backport 192215 from trunk:

	2012-10-08  Dehao Chen  <dehao@google.com>

	* predict.c (predict_extra_loop_exits): Use
	predict_paths_leading_to_edge to replace predict_edge_def.

2012-10-01  Teresa Johnson  <tejohnson@google.com>

        Backport 191932 from google/main:

        Add a new dump flag that dumps PMU profile information using the -pmu
        dump option.

        2012-10-01  Teresa Johnson  <tejohnson@google.com>
                    Chris Manghane  <cmang@google.com>

	* doc/invoke.texi: Update -fpmu-profile-use option.
	* tree-dump.c: Add new dump flag.
	* tree-pretty-print.c (dump_load_latency_details): New function.
	(dump_pmu): Ditto.
	(dump_generic_node): Add support for new dump flag.
	* tree-pretty-print.h (dump_pmu): Declare.
	* tree-pass.h (enum tree_dump_index): Add new dump flag.
	* gcov.c (process_pmu_profile): Fix string table count assert.
	* opts.c (OPT_fpmu_profile_use_): Add support for -fpmu-profile-use.
	* gimple-pretty-print.c (dump_gimple_phi): Add support for new dump
        flag.
	(dump_gimple_stmt): Ditto.
	* coverage.c (struct pmu_entry): New structure.
        (struct gcov_pmu_summary): Ditto.
	(htab_pmu_entry_hash): New function.
	(htab_pmu_entry_eq): Ditto.
	(htab_pmu_entry_del): Ditto.
	(read_pmu_file): Ditto.
	(get_pmu_hash_entry): Ditto.
	(process_pmu_data): Ditto.
	(get_coverage_pmu_latency): Ditto.
	(get_coverage_pmu_branch_mispredict): Ditto.
	(pmu_data_present): Ditto.
	(coverage_init): Add pmu file read support.
	* coverage.h (get_coverage_pmu_latency): Declare.
        (get_coverage_pmu_branch_mispredict): Ditto.
	* common.opt: Update -fpmu-profile-use option.

2012-09-28  Rong Xu  <xur@google.com>

	Google Ref: b/7005205
	* gcc/coverage.c (coverage_checksum_string): strip out LIPO 
	specific string. 
	(crc32_string_1): New function.
	* gcc/cp/decl2.c (start_static_storage_duration_function):
	generate LIPO specific string.

2012-09-27  Dehao Chen  <dehao@google.com>

	Backport from trunk r191494, r191510, r191614, r191669, r191680,
	r191706, r191747, r191759, r191779 and r191810:

	* toplev.c (toplev_main): Finalize block_locations.
	* tree.c (tree_set_block): New.
	(tree_block): Change to use LOCATION_BLOCK.
	(build1_stat): Remove block.
	* tree.h (TREE_SET_BLOCK): New.
	(tree_set_block): New.
	(tree_block): Change to return tree.
	(TREE_BLOCK): Likewise.
	(tree_exp): Remove block.
	(DECL_IS_BUILTIN): Compare LOCATION_LOCUS.
	(EXPR_HAS_LOCATION): Likewise.
	(inlined_function_outer_scope_p): Likewise.
	(OMP_CLAUSE_HAS_LOCATION): Likewise.
	* cfglayout.c (reemit_insn_block_notes): Change to use LOCATION_BLOCK.
	(fixup_reorder_chain): Likewise.
	(insn_discriminator): Likewise.
	(insn_locators_alloc): Remove.
	(insn_locators_finalize): Remove.
	(insn_locators_free): Remove.
	(set_curr_insn_source_location): Remove.
	(get_curr_insn_source_location): Remove.
	(set_curr_insn_block): Remove.
	(get_curr_insn_block): Remove.
	(locator_scope): Remove.
	(insn_scope): Change to use new location.
	(locator_location): Remove.
	(insn_line): Change to use new location.
	(locator_file): Remove.
	(insn_file): Change to use new location.
	(locator_eq): Remove.
	(insn_locations_init): New.
	(insn_locations_finalize): New.
	(set_curr_insn_location): New.
	(curr_insn_location): New.
	* final.c (final_start_function): Likewise.
	* input.c (expand_location): Likewise.
	(location_with_discriminator): Likewise.
	(has_discriminator): Likewise.
	(map_discriminator_location): Likewise.
	(get_discriminator_from_locus): Likewise.
	* input.h (LOCATION_LOCUS): New.
	(LOCATION_BLOCK): New.
	* fold-const.c (expr_location_or): Change to use new location.
	* reorg.c (emit_delay_sequence): Likewise.
	(dbr_schedule): Likewise.
	* modulo-sched.c (loop_single_full_bb_p): Likewise.
	(dump_insn_location): Likewise.
	(loop_canon_p): Likewise.
	(sms_schedule): Likewise.
	* lto-streamer-out.c (lto_output_location_bitpack): Likewise.
	* lto-cgraph.c (output_node_opt_summary): Likewise.
	* jump.c (rtx_renumbered_equal_p): Likewise.
	* ifcvt.c (noce_try_move): Likewise.
	(noce_try_store_flag): Likewise.
	(noce_try_store_flag_constants): Likewise.
	(noce_try_addcc): Likewise.
	(noce_try_store_flag_mask): Likewise.
	(noce_try_cmove): Likewise.
	(noce_try_cmove_arith): Likewise.
	(noce_try_minmax): Likewise.
	(noce_try_abs): Likewise.
	(noce_try_sign_mask): Likewise.
	(noce_try_bitop): Likewise.
	(noce_process_if_block): Likewise.
	(cond_move_process_if_block): Likewise.
	(find_cond_trap): Likewise.
	* ipa-prop.c (ipa_set_jf_constant): Likewise.
	(ipa_write_jump_function): Likewise.
	* dwarf2out.c (add_src_coords_attributes): Likewise.
	* expr.c (expand_expr_real): Likewise.
	* tree-parloops.c (create_loop_fn): Likewise.
	* recog.c (peep2_attempt): Likewise.
	* function.c (free_after_compilation): Likewise.
	(expand_function_end): Likewise.
	(maybe_copy_prologue_epilogue_insn): Likewise.
	(set_insn_locations): Likewise.
	(thread_prologue_and_epilogue_insns): Likewise.
	* print-rtl.c (print_rtx): Likewise.
	* profile.c (branch_prob): Likewise.
	* trans-mem.c (ipa_tm_scan_irr_block): Likewise.
	* gimplify.c (gimplify_call_expr): Likewise.
	* except.c (duplicate_eh_regions_1): Likewise.
	* emit-rtl.c (try_split): Likewise.
	(make_insn_raw): Likewise.
	(make_debug_insn_raw): Likewise.
	(make_jump_insn_raw): Likewise.
	(make_call_insn_raw): Likewise.
	(emit_pattern_after_setloc): Likewise.
	(emit_pattern_after): Likewise.
	(emit_insn_after_setloc): Likewise.
	(emit_insn_after): Likewise.
	(emit_jump_insn_after_setloc): Likewise.
	(emit_jump_insn_after): Likewise.
	(emit_call_insn_after_setloc): Likewise.
	(emit_call_insn_after): Likewise.
	(emit_debug_insn_after_setloc): Likewise.
	(emit_debug_insn_after): Likewise.
	(emit_pattern_before_setloc): Likewise.
	(emit_pattern_before): Likewise.
	(emit_insn_before_setloc): Likewise.
	(emit_insn_before): Likewise.
	(emit_jump_insn_before_setloc): Likewise.
	(emit_jump_insn_before): Likewise.
	(emit_call_insn_before_setloc): Likewise.
	(emit_call_insn_before): Likewise.
	(emit_debug_insn_before_setloc): Likewise.
	(emit_debug_insn_before): Likewise.
	(emit_copy_of_insn_after): Likewise.
	* cfgexpand.c (gimple_assign_rhs_to_tree): Change to use new location.
	(expand_gimple_cond): Likewise.
	(expand_call_stmt): Likewise.
	(expand_gimple_stmt_1): Likewise.
	(expand_gimple_basic_block): Likewise.
	(construct_exit_block): Likewise.
	(gimple_expand_cfg): Likewise.
	* cfgcleanup.c (try_forward_edges): Likewise.
	* tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
	(dump_scope_block): Likewise.
	(mark_all_vars_used): Likewise.
	(remove_unused_locals): Likewise.
	(clear_unused_block_pointer): New.
	(clear_unused_block_pointer_1): New.
	* rtl.c (rtx_equal_p_cb): Likewise.
	(rtx_equal_p): Likewise.
	* rtl.h (XUINT): New.
	(INSN_LOCATOR): Remove.
	(CURR_INSN_LOCATION): Remove.
	(INSN_LOCATION): New.
	(INSN_HAS_LOCATION): New.
	* tree-inline.c (remap_gimple_op_r): Change to use new location.
	(copy_tree_body_r): Likewise.
	(copy_phis_for_bb): Likewise.
	(expand_call_inline): Likewise.
	* tree-streamer-in.c (lto_input_ts_exp_tree_pointers): Likewise.
	* tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
	* gimple-streamer-out.c (output_gimple_stmt): Likewise.
	* combine.c (try_combine): Likewise.
	* tree-outof-ssa.c (set_location_for_edge): Likewise.
	(insert_partition_copy_on_edge): Likewise.
	(insert_value_copy_on_edge): Likewise.
	(insert_rtx_to_part_on_edge): Likewise.
	(insert_part_to_rtx_on_edge): Likewise.
	* basic-block.h (edge_def): Remove field.
	* gimple.h (gimple_statement_base): Remove field.
	(gimple_bb): Change to use new location.
	(gimple_block): Likewise.
	(gimple_set_block): Likewise.
	(gimple_set_location): Likewise.
	(gimple_has_location): Likewise.
	* tree-cfg.c (make_cond_expr_edges): Likewise.
	(make_goto_expr_edges): Likewise.
	(gimple_can_merge_blocks_p): Likewise.
	(assign_discriminator): Likewise.
	(move_stmt_op): Likewise.
	(move_block_to_fn): Likewise.
	* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Likewise.
	* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
	* config/i386/i386.c (x86_output_mi_thunk): Likewise.
	* config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
	* config/sh/sh.c (sh_output_mi_thunk): Likewise.
	(gen_block_redirect): Likewise.
	* config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
	(rs6000_final_prescan_insn): Likewise.
	* config/score/score.c (score_output_mi_thunk): Likewise.
	* config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
	* config/mips/mips.c (mips_output_mi_thunk): Likewise.
	(mips16_gp_pseudo_reg): Likewise.
	* config/s390/s390.c (s390_chunkify_start): Likewise.
	* config/spu/spu.c (emit_nop_for_insn): Likewise.
	(pad_bb): Likewise.
	(spu_emit_branch_hint): Likewise.
	(insert_hbrp_for_ilb_runout): Likewise.
	* config/mep/mep.c (mep_make_bundle): Likewise.
	(mep_bundle_insns): Likewise.
	* config/c6x/c6x.c (gen_one_bundle): Likewise.
	* config/picochip/picochip.c (picochip_reorg): Likewise.
	* config/arm/arm.c (require_pic_register): Likewise.
	* config/bfin/bfin.c (gen_one_bundle): Likewise.
	* cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
	(cfg_layout_merge_blocks): Likewise.
	* stmt.c (emit_case_nodes): Likewise.
	* tree-eh.c (lower_try_finally_dup_block): Likewise.
	(honor_protect_cleanup_actions): Likewise.

2012-09-24  Xinliang David Li  <davidxl@google.com>

	* varasm.c (finish_alias_1):  Fix mis-fired error
	for extern alias (same-body) in LIPO mode.

2012-09-24  Xinliang David Li  <davidxl@google.com>

	* df-problems.c (df_check_ud_du_memory_usage): New function.
	* ree.c (rest_of_handle_ree): Suppress ree if it requires
	 too much memory.
	* dce.c (rest_of_handle_ud_dce): Ditto.

2012-09-24  Rong Xu  <xur@google.com>

	Google Ref: b/7210837 and b/7210303. 
	* coverage.c (force_matching_cg_opts): add new entries.
 
2012-09-24  Rong Xu  <xur@google.com>

	Google ref b/7078882.
	* l-ipo.c (cgraph_is_aux_decl_external): output comdat
	virtual functions when they are auxiliary modules; otherwise
	we may get undefined symbol in linking.

2012-09-14  Dehao Chen  <dehao@google.com>

	Backport r191338 from trunk.

	2012-09-14  Dehao Chen  <dehao@google.com>

	* tree-eh.c (goto_queue_node): New field.
	(record_in_goto_queue): New parameter.
	(record_in_goto_queue_label): New parameter.
	(lower_try_finally_dup_block): New parameter.
	(maybe_record_in_goto_queue): Update source location.
	(lower_try_finally_copy): Likewise.
	(honor_protect_cleanup_actions): Likewise.
	* gimplify.c (gimplify_expr): Reset the location to unknown.

2012-09-14  Teresa Johnson  <tejohnson@google.com>

	Backport from trunk r190952 and r191238:

	* gcov-io.c (gcov_write_summary): Write out non-zero histogram
	entries to function summary along with an occupancy bit vector.
	(gcov_read_summary): Read in the histogram entries.
	(gcov_histo_index): New function.
	(gcov_histogram_merge): Ditto.
	* gcov-io.h (gcov_type_unsigned): New type.
	(struct gcov_bucket_type): Ditto.
	(struct gcov_ctr_summary): Include histogram.
	(GCOV_TAG_SUMMARY_LENGTH): Update to include histogram entries.
	(GCOV_HISTOGRAM_SIZE): New macro.
	(GCOV_HISTOGRAM_BITVECTOR_SIZE): Ditto.
	(gcov_gcda_file_size): New parameter.
	* profile.c (NUM_GCOV_WORKING_SETS): Ditto.
	(gcov_working_sets): New global variable.
	(compute_working_sets): New function.
	(find_working_set): Ditto.
	(get_exec_counts): Invoke compute_working_sets.
	* loop-unroll.c (code_size_limit_factor): Call new function
	find_working_set to obtain working set information.
	* coverage.c (read_counts_file): Merge histograms, and
	fix bug with accessing summary info for non-summable counters.
	* basic-block.h (gcov_type_unsigned): New type.
	(struct gcov_working_set_info): Ditto.
	(find_working_set): Declare.
	* gcov-dump.c (tag_summary): Dump out histogram.
	* configure.ac (HOST_HAS_F_SETLKW): Set based on compile
	test using F_SETLKW with fcntl.
	* configure, gcc/config.in: Regenerate.

2012-09-13  Xinliang David Li  <davidxl@google.com>

	* cgraphunit.c (cgraph_add_output_node): Check for
	duplicates of compiler generated functions.

2012-09-12   Cary Coutant  <ccoutant@google.com>

	* gcc.c (replace_extension_spec_func): Restrict search for
	extension to last component of path.

2012-09-10  Sterling Augustine  <saugustine@google.com>

	* dwarf2out.c (output_pubname): Correct conditional.

2012-09-10  Teresa Johnson  <tejohnson@google.com>

	* loop-unroll.c (code_size_limit_factor): Guard against divide
	by zero exception.

2012-09-05  Cary Coutant  <ccoutant@gmail.com>

	Backport trunk patch to fix a problem where type signature does
	not include the type's context.

	2012-07-19  Jason Merrill  <jason@redhat.com>

	    PR debug/53235
	    * dwarf2out.c (get_die_parent): New.
	    (generate_type_signature): Use it.

2012-08-31   Cary Coutant  <ccoutant@google.com>

	* dwarf2out.c (clone_tree_partial): Restore.
	(copy_decls_walk): Call clone_tree_partial to copy children
	of non-declaration DIEs.

2012-08-29  Chris Manghane  <cmang@google.com>

	Backport r190762 from google/main.

	2012-08-28  Chris Manghane  <cmang@google.com>

	* gcc/gcov.c
	(release_structures): Removed filename field from PMU structures.
	(filter_pmu_data_lines): Added PMU string table support.
	(process_pmu_profile): Ditto.
	* gcc/gcov-io.c
	(gcov_read_pmu_load_latency_info): Replaced filename field with filetag.
	(gcov_read_pmu_branch_mispredict_info): Ditto.
	(gcov_read_pmu_string_table_entry): New Function.
	(print_load_latency_line): Replaced filename field with filetag.
	(print_branch_mispredict_line): Ditto.
	(print_string_table_entry): New function.
	* gcc/gcov-io.h
	(GCOV_TAG_PMU_LOAD_LATENCY_LENGTH): Replaced filename field with filetag
	(GCOV_TAG_PMU_BRANCH_MISPREDICT_LENGTH): Ditto.
	(GCOV_TAG_PMU_STRING_TABLE_ENTRY): Added new tag.
	(GCOV_TAG_PMU_STRING_TABLE_ENTRY_LENGTH): Ditto.
	(gcov_pmu_load_latency_info): Replaced filename field with filetag.
	(gcov_pmu_branch_mispredict_info): Ditto.
	(gcov_pmu_string_table_entry): New struct.
	(gcov_pmu_string_table): New struct.
	(gcov_write_ll_line): Moved pmu writing utilities to global header.
	(gcov_write_branch_mispredict_line): Ditto.
	(gcov_write_string_table_entry): Ditto.
	(gcov_write_tool_header): Ditto.
	* gcc/gcov-dump.c
	(tag_pmu_load_latency_info): Removed PMU filename field.
	(tag_pmu_branch_mispredict_info): Ditto.
	(tag_pmu_string_table_entry): New function.

2012-08-29   Cary Coutant  <ccoutant@google.com>

	* dwarf2out.c (clone_tree_partial): Remove.
	(copy_decls_walk): Don't copy children of a declaration
	into a type unit.

2012-08-23  Teresa Johnson  <tejohnson@google.com>

	* config/i386/i386.md (anddi_1): Add new r,qm,Lh pattern
	first to catch an and with 0xff that would be turned into
	an andw on machines with length-changing prefix stalls,
	and instead convert it into a zero-extending move.
	(andsi_1, andhi_1): Ditto.
	* config/i386/constraints.md (La): Rename from "L".
	(Lh): New constraint to match possible LCP stalling ands.
	* config/i386/i386.c (ix86_binary_operator_ok): Update
	for rename of "L" constraint.

2012-08-23  Teresa Johnson  <tejohnson@google.com>

	* Revert r189866

2012-08-23   Xinliang David Li  <davidxl@google.com>

	*coverage.c (check_cg_opts): New function.
	(has_incompatible_cg_opts): Ditto.
	(incompatible_cl_args): Handle incompatible cg
	options more generally, and added -fsized-delete.

2012-08-23  Sriraman Tallam  <tmsriram@google.com>

	Backport r186789,r186795,r186855,r187365,r188417

	r186789:
	2012-04-24  Sriraman Tallam  <tmsriram@google.com>

		* config/i386/i386.c (build_processor_model_struct): New function.
		(make_var_decl): New function.
		(fold_builtin_cpu): New function.
		(ix86_fold_builtin): New function.
		(make_cpu_type_builtin): New function.
		(ix86_init_platform_type_builtins): New function.
		(ix86_expand_builtin): Expand new builtins by folding them.
		(ix86_init_builtins): Make new builtins to detect CPU type.
		(TARGET_FOLD_BUILTIN): New macro.
		(IX86_BUILTIN_CPU_INIT): New enum value.
		(IX86_BUILTIN_CPU_IS): New enum value.
		(IX86_BUILTIN_CPU_SUPPORTS): New enum value.
		* config/i386/i386-builtin-types.def: New function type.
		* testsuite/gcc.target/builtin_target.c: New testcase.
		* doc/extend.texi: Document builtins.

	r186795:
	No changes.

	r186855:
	2012-04-25  Sriraman Tallam  <tmsriram@google.com>

		* doc/extend.texi: Document avx2 support.
		* config/i386/i386.c (fold_builtin_cpu): Add avx2.
		* testsuite/gcc.target/i386/builtin_target.c: Check avx2.

	r187365:
	2012-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

		* doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init):
		Document requirement to call in constructors.

		* config/i386/i386.c: Update comments for i386-cpuinfo.c name
		change.

	r188417:
	2012-06-11  Sriraman Tallam  <tmsriram@google.com>

		* testsuite/gcc.target/i386/builtin_target.c (vendor_signatures): New enum.
		(check_intel_cpu_model): New function.
		(check_amd_cpu_model): New function.
		(check_features): New function.
		(__get_cpuid_output): New function.
		(check_detailed): New function.
		(fn1): Rename to quick_check.
		(main): Update to call quick_check and call check_detailed.

2012-08-22   Cary Coutant  <ccoutant@google.com>

	* dwarf2out.c (should_move_die_to_comdat): A type definition
	can contain a subprogram definition, but don't move it to a
	comdat unit.

2012-08-20   Cary Coutant  <ccoutant@google.com>

	* dwarf2out.c (remove_loc_list_addr_table_entries): Change
	parameter; update all calls.
	(output_pubname): Don't assert on unknown TAGs.
	(resolve_addr): Call remove_loc_list_addr_table_entries for all
	location expressions.

2012-08-20  Sterling Augustine  <saugustine@google.com>

	* dwarf2out.c (DEBUG_PUBNAMES_SECTION, DEBUG_PUBTYPES_SECTION): Adjust
	macros.
	(is_java, include_pubname_in_output): New functions.
	(size_of_pubnames): Call include_pubname_in_output.  New variable
	space_for_flags.
	(output_pubnames): Refactor, moving most of the logic to...
	(output_pubname): ... here.  New function.
	(dwarf2out_finish): Move output pubtable logic to...
	(output_pubtables): ... here.  New function.
	* common.opt (ggnu-pubnames):  New option.
	(gpubnames, gno-pubnames): Adjust.
	* doc/invoke.texi: Document -ggnu-pubnames.

2012-08-17   Cary Coutant  <ccoutant@google.com>

	* dwarf2out.c (is_class_die): Remove function.
	(add_pubname): Call class_scope_p instead.

2012-08-17   Xinliang David Li  <davidxl@google.com>

	cgraphunit.c (is_backend_entered_p): New function.

2012-08-14  Han Shen  <shenhan@google.com>
	Backport from mainline.

	2012-05-01  Richard Earnshaw  <rearnsha@arm.com>

	    * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
	    comparing enumeration values.  Update comments.

	2012-04-26  Michael Hope  <michael.hope@linaro.org>
		    Richard Earnshaw  <rearnsha@arm.com>

	    * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
	    (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
	    (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
	    (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.

2012-08-13  Xinliang David Li  <davidxl@google.com>

	Google ref/6911651
	* tree-ssa.c (warn_uninitialized_vars): Guard
	possibly uninitialized warning under
	-Wmaybe-uninitialized

2012-08-09   Cary Coutant  <ccoutant@google.com>

	* tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Check for
	discriminator.
	* diagnostic.c (diagnostic_report_current_module): Likewise.

2012-08-09   Cary Coutant  <ccoutant@google.com>

    Backport of pending upstream patch.

	* dwarf2out.c (clone_as_declaration): Copy DW_AT_abstract_origin
	attribute.
	(generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
	from original DIE.
	(clone_tree_hash): Rename to ...
	(clone_tree_partial): ... this; change callers.  Copy
	DW_TAG_subprogram DIEs as declarations.

2012-08-07  Cary Coutant  <ccoutant@google.com>

    Backport r190190 from trunk.

	* cgraphunit.c (assemble_thunk): Add source line info.
	* final.c (final): Check for non-null cfg pointer.

2012-08-01  Dehao Chen  <dehao@google.com>

	Backport r190015 from trunk:

	2012-07-31  Dehao Chen  <dehao@google.com>
	* predict.c (tree_estimate_probability_driver): Normalize the
	loop when initializing the loop optimizer.

2012-07-26   Cary Coutant  <ccoutant@google.com>

	* dwarf2out.c (dwo_id_placeholder): Delete.
	(output_skeleton_debug_sections): Don't write dwo_id here.
	(dwarf2out_finish): Compute dwo_id and write it to both comp units.

2012-07-25  Cary Coutant  <ccoutant@google.com>

    Backport pending upstream patch to output DW_AT_high_pc as a constant
    instead of a relocated address.  This significantly reduces the number
    of entries used in the .debug_addr table with -gfission.

    2012-04-27  Mark Wielaard  <mjw@redhat.com>

	* dwarf2out.h (enum dw_val_class): Add dw_val_class_high_pc.
	* dwarf2out.c (dw_val_equal_p): Handle dw_val_class_high_pc.
	(add_AT_low_high_pc): New function.
	(AT_lbl): Handle dw_val_class_high_pc.
	(print_die): Likewise.
	(attr_checksum): Likewise.
	(attr_checksum_ordered): Likewise.
	(same_dw_val_p): Likewise.
	(size_of_die): Likewise.
	(value_format): Likewise.
	(output_die): Likewise.
	(gen_subprogram_die): Use add_AT_low_high_pc.
	(add_high_low_attributes): Likewise.
	(dwarf2out_finish): Likewise.

2012-07-25  Teresa Johnson  <tejohnson@google.com>

	Backport the following patches from trunk to ensure that
	"andw $0xff, $reg" is always converted to a zero extend
	to avoid LCP stalls on core2/corei7 (b/6615073):
	r184891, r186839, r186979, r186993, r188630, r188634, r188648

	r184891:
	2012-03-04  Uros Bizjak  <ubizjak@gmail.com>
	* config/i386/constraints.md (Ya): New internal constraint.
	* config/i386/i386.md (zero_extendsidi2): Remove expansion.
	(*zero_extendsidi2_rex64): Add x,x alternative.
	(*zero_extendsidi2): Ditto.  Add o,0 alternative.
	Remove flags reg clobber.  Adjust corresponding splits.
	(zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
	zero_extendqisi2 expanders using SWI12 mode iterator.
	(zero_extend<mode>si2_and): Macroize insn from
	zero_extendhisi2_and and zero_extendqisi2_and.  Merge corresponding
	splitters.
	(*zero_extend<mode>si2):  Macroize insn from
	*zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
	(*zero_extend*2_movzbl_and): Remove insn patterns.
	(zero_extendqihi2_and): Merge corresponding splitter.
	(*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
	(*zero_extend*2_movzbl_and): Remove insn patterns.
	(*anddi_1): Split TYPE_IMOVX instructions.
	(*andsi_1): Use Ya for alternative 2.  Split TYPE_IMOVX instructions.
	(*andhi_1): Ditto.
	(and->zext splitter): Add splitter pattern.
	(zero extend with andsi3 splitter): Adjust zero_extend pattern.

	r186839:
	2012-04-25  Jakub Jelinek  <jakub@redhat.com>
	PR target/53110
	* config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
	instead expand it as zero extension.

	r186979:
	2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
	* config/i386/i386.md (and<mode>3): Expand masking operations with
	0xff, 0xffff or 0xffffffff immediates to corresponding zero_extend RTX.
	(and splitter): Split to DImode zero_extend RTX for DImode operand[0].

	r186993:
	2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
	* config/i386/i386.md (and<mode>3): Change runtime operand mode checks
	to compile-time "mode == <MODE>mode" checks.
	(and splitter): Ditto.

	r188630:
	2012-06-14  Uros Bizjak  <ubizjak@gmail.com>
	* config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative.
	(*zero_extendsidi2_rex64): Ditto.  Remove isa attribute.

	r188634:
	2012-06-14  Uros Bizjak  <ubizjak@gmail.com>
	Fix my previous commit to:
	* config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative.
	(*zero_extendsidi2_rex64): Ditto.  Remove isa attribute.

	r188648:
	2012-06-14  Uros Bizjak  <ubizjak@gmail.com>
       (*zero_extendsidi2_rex64): Remove isa attribute.

2012-07-25  Cary Coutant  <ccoutant@google.com>

    	* common.opt (-gfission): Alias for -gsplit-dwarf.
    	(-gno-fission): Alias for -gno-split-dwarf.

2012-07-25   Diego Novillo  <dnovillo@google.com>

	Merge from gcc-4_7-branch rev 189718.

2012-07-24  Cary Coutant  <ccoutant@google.com>

    Backport pending Fission patch at http://codereview.appspot.com/6305113.
    
    2012-07-18  Sterling Augustine <saugustine@google.com>
		Cary Coutant <ccoutant@google.com>
    
    	* common.opt (gno-split-dwarf, gsplit-dwarf): New switches.
    	* doc/invoke.texi (Debugging Options): Document them.
    	* opts.c (finish_options): Make gsplit-dwarf imply -gpubnames.
    	* dwarf2out.h (dw_val_struct): New field val_index.
    	* dwarf2out.c (debug_skeleton_info_section,
    	debug_skeleton_abbrev_section, debug_addr_section,
    	debug_skeleton_line_section, debug_str_offsets_section): New sections.
    	(indirect_string_node): Add index field.
    	(dw_loc_list_node): Add begin_index field.
    	(dw_addr_op, new_addr_loc_descr, AT_index, set_AT_index,
    	add_addr_table_entry, remove_addr_table_entry, output_range_list_offset,
    	output_loc_list_offset, output_attr_index_or_value,
    	remove_loc_list_addr_table_entries, output_die_abbrevs,
    	add_top_level_skeleton_die_attrs, get_skeleton_type_unit,
    	output_skeleton_debug_sections, output_index_strings,
    	output_addr_table, index_location_lists): New functions.
    	(DEBUG_DWO_INFO_SECTION, DEBUG_DWO_ABBREV_SECTION, DEBUG_ADDR_SECTION,
    	DEBUG_NORM_MACINFO_SECTION, DEBUG_DWO_MACINFO_SECTION,
    	DEBUG_DWO_LINE_SECTION, DEBUG_DWO_LOC_SECTION,
    	DEBUG_NORM_STR_OFFSETS_SECTION, DEBUG_DWO_STR_SECTION,
    	DEBUG_MACRO_SECTION_FLAGS, DEBUG_SKELETON_LINE_SECTION_LABEL,
    	DEBUG_SKELETON_INFO_SECTION_LABEL, DEBUG_SKELETON_ABBREV_SECTION_LABEL,
    	DEBUG_ADDR_SECTIN_LABEL, SKELETON_COMP_DIE_ABBREV,
    	SKELETON_TYPE_DIE_ABBREV): New defines.
    	(DEBUG_MACINFO_SECTION, DEBUG_MACRO_SECTION, DEBUG_STR_SECTION
    	DEBUG_STR_SECTION_FLAGS): Adjust definitions.
    	(TEXT_SECTION_LABEL, COLD_TEXT_SECTION_LABEL, DEBUG_INFO_SECTION_LABEL,
    	DEBUG_ABBREV_SECTION_LABEL, DEBUG_LOC_SECTION_LABEL,
    	DEBUG_RANGES_SECTION_LABEL, DEBUG_MACINFO_SECTION_LABEL,
    	DEBUG_MACRO_SECTION_LABEL): Adjust indentation.
    	(debug_skeleton_info_section_label, debug_skeleton_abbrev_section_label,
    	debug_addr_section_label, debug_skeleton_line_section_label,
    	dw_id_placeholder): New	global variables.
    	(add_AT_lbl_id): Add force_direct parameter.  Adjust calls throughout
    	file.  Handle dwarf_split_debug_info.
    	(add_AT_addr). Likewise.  Initialize val_index_field.
    	(add_AT_range_list): Add force parameter.  Adjust calls throughout file.
    	Initialize val_index field.
    	(add_ranges_by_labels): Add and handle force_direct parameter.  Adjust
    	calls throughout file.
    	(size_of_die): New variable form.  Handle dwarf_split_debug_info and
    	call AT_index.
    	(value_format): Use AT_class instead of calling val_class directly.
    	Handle DW_FORM_addr and dw_val_class_lbl_id appropriately for
    	dwarf_split_debug_info and AT_index.
    	(output_abbrev_section): Move most code to new function
    	output_die_abbrevs.
    	(output_loc_list): Handle dwarf_split_debug_info by using
    	DW_LLE_start_length_entry and DW_LLE_end_of_list_entry.
    	(output_die): Call output_attr_index_or_value, output_range_list_offset,
    	Fix format string.  Check val_str->form directly to avoid side effect.
    	(add_pubtype): Fix indention.
    	(output_comdat_type_unit): Handle dwarf_split_debug_info.
    	(output_pubnames): Likewise.
    	(output_aranges): Likewise.
    	(output_mac_info): Likewise.
    	(output_line_info): New parameter prologue_only.  Adjust calls
    	throughout file.
    	(mem_loc_descriptor): Call new_addr_loc_descr.
    	(loc_descriptor): Likewise.
    	(add_const_value_attribute): Likewise.
    	(loc_list_from_tree): Replace first_op and second_op with tls_op.
    	Update associated logic.  Call new_addr_loc_descr.
    	(dwarf2out_init): Handle dwarf_split_debug_info.  Initialize
    	debug_skeleton_info_section, debug_skeleton_abbrev_section,
    	debug_addr_section, debug_skeleton_line_section,
    	debug_str_offsets_section, debug_skeleton_info_section_label,
    	debug_skeleton_abbrev_section_label, debug_addr_section_label and
    	debug_skeleton_line_section_label.  Use DEBUG_MACRO_SECTION_FLAGS.
    	(new_loc_descr, build_cfa_loc, add_AT_flag, add_AT_int, add_AT_unsigned,
    	add_AT_double, add_AT_vec, add_AT_data8, add_AT_string, add_AT_die_ref,
    	add_AT_fde_ref, add_AT_loc, add_AT_loc_list, add_AT_file,
    	add_AT_vms_delta, add_AT_lineptr, add_AT_macptr, add_AT_offset):
    	Initialize val_index field.
    	(size_of_loc_descr, output_loc_operands, output_loc_operands_raw,
    	resolve_addr_in_expression, hash_loc_operands):	Handle
    	DW_OP_GNU_addr_index and DW_OP_GNU_const_index.
    	(compare_loc_operands):  Likewise.  Adjust assertion.
    	(AT_string_form): Handle dwarf_split_debug_info.
    	(resolve_addr): New local variable l.  Check val_index.  Call
    	remove_addr_table_entry and remove_loc_list_addr_table_entries.
    	(dwarf2out_finish): Handle dwarf_split_debug_info.  New variable
    	main_comp_unit_die.  Call index_location_lists, add_AT_data8,
    	add_AT_lineptr, output_skeleton_debug_sections, output_addr_table.  Move
    	call to	ASM_GENERATE_INTERNAL_LABEL to dwarf2out_init.  Call
    	ASM_OUTPUT_LABEL for debug_skeleton_line_section_label and
    	debug_addr_section_label.  Adjust comment.
    	* gcc.c (replace_extension_spec_func):  New function.
    	(ASM_FINAL_SPEC): Adjust.  Fix related comments.
    	(check_live_switch): Likewise.
    
2012-07-24  Xinliang David Li  <davidxl@google.com>

	* diagnostic.c (diagnostic_initialize): Initialize
	new field.
	(diagnostic_report_diagnostic): Honor -Wforce-warnings.
	* diagnostic.h: New field.
	* opts.c (common_handle_option): Handle new option.
	* coverage.c (get_da_file_name): Handle new option.
	* common.opt: New options.

2012-07-24  Cary Coutant  <ccoutant@google.com>
    
    Backport Fission patches from trunk at r188195, r188857, r189084,
    r189094, and r189392.
    
    2012-06-29   Cary Coutant  <ccoutant@google.com>
    
    	* dwarf2out.c (add_pubname_string): Don't check for want_pubnames.
    	(gen_subprogram_die): Don't add pubname if want_pubnames is false.
    	(gen_variable_die): Likewise.
    	(gen_namespace_die): Likewise.
    
    2012-06-29  Sterling Augustine  <saugustine@google.com>
    
    	* dwarf2out.c (add_pubname): Add comment.
    	(add_pubtype): Fix indentation.
    	(gen_enumeration_type_die): Likewise.
    
    2012-06-21   Sterling Augustine  <saugustine@google.com>
    		 Cary Coutant  <ccoutant@google.com>
    
    	* dwarf2out.c (is_cu_die, is_namespace_die, is_class_die,
    	add_AT_pubnames, add_enumerator_pubname, want_pubnames): New functions.
    	(comdat_type_struct): New field 'skeleton_die'.
    	(breakout_comdat_types): Update it.
    	(add_pubname): Rework logic.  Call is_class_die, is_cu_die and
    	is_namespace_die.  Fix minor style violation.  Call want_pubnames.
    	(add_pubname_string): Call want_pubnames.
    	(add_pubtype): Rework logic for calculating type name.  Call
    	is_namespace_die.  Call want_pubnames.
    	(output_pubnames): Move conditional logic deciding when to produce the
    	section from dwarf2out_finish.  Use new skeleton_die field.
    	(base_type_die): Call add_pubtype.
    	(gen_enumeration_type_die): Unconditionally call add_pubtype.
    	(gen_subprogram_die): Adjust calls to add_pubname.
    	(gen_namespace_die): Call add_pubname_string.
    	(dwarf2out_finish): Call add_AT_pubnames; Move logic on when to
    	produce pubnames and pubtypes sections to output_pubnames.
    	* common.opt: New option '-gpubnames'.
    	* doc/invoke.texi: Document it.
    
2012-07-19  Easwaran Raman  <eraman@google.com>

	* params.def (HOT_BB_COUNT_FRACTION): Set default to 60000.

2012-07-19  Rong Xu  <xur@google.com>

	Backport r189691 from google_main.
	* gcc/gcov-io.h (GCOV_TAG_MODULE_INFO): tag needs to be
	 an odd number in each active level.

2012-07-10  Xinliang David Li  <davidxl@google.com>

	Backport r189413 from trunk
	* doc/invoke.texi: New option documented.
	* flag-types.h: New enum type.
	* gimplify.c (gimplify_bind_expr): Control
	clobber generation with new option.
	(gimplify_target_expr): Ditto.
	common.opt: New option.

2012-07-10  Xinliang David Li  <davidxl@google.com>

	* Revert r189107

2012-07-01  Xinliang David Li  <davidxl@google.com>

	* common.opt: -ftemp-reuse-stack option.
	* gimplify.c (gimplify_target_expr): Check new flag.

2012-06-29  Xinliang David Li  <davidxl@google.com>

	* coverage.c (coverage_init): Initialize dyn-ipa
	paramater decls.
	* tree-profile.c (init_comdat_decl): New function.
	(tree_init_dyn_ipa_paramters): Ditto.

2012-06-27  Dehao Chen  <dehao@google.com>

	Backport from trunk r188981.
	* tree-inline.c: (expand_call_inline): Ensure that lexical block's
	source location is consistant with the call stmt.

2012-06-21   Diego Novillo  <dnovillo@google.com>

	Merge from trunk rev 188808.

2012-06-15   Cary Coutant  <ccoutant@google.com>

    Revert Fission patches r182490, r182891, r183042, and r183320.
    This will clear the way to backport the final patches from trunk.

    r182490:

	2011-12-19  Sterling Augustine <saugustine@google.com>

	    * dwarf2out.c (DEBUG_PUBNAMES_SECTION_LABEL,
	    DEBUG_PUBTYPES_SECTION_LABEL): Define.
	    (debug_pubnames_section_label, debug_pubtypes_section_label):
	    Declare.
	    (is_namespace_die, is_class_die): New functions.
	    (add_enumerator_pubname): New function.
	    (add_pubname): Call is_namespace_die, is_cu_die, and is_class_die in
	    conditional.
	    (add_pubtype): Call is_namespace_die. Rework name calculation.  Call
	    type_tag, lang_hooks.dwarf_name and add_enumerator_pubname.
	    (output_pubnames): Output debug_pubnames_section_label or
	    debug_pubtypes_section_label.
	    (base_type_die): Call add_pubtype.
	    (gen_namespace_die): Call add_pubname_string and lang_hooks.dwarf_name.
	    (dwarf2_out_init): Generate debug_pubnames_section_label and
	    debug_pubtypes_section_label.
	    (pubtypes_section_empty): New function.
	    (dwarf2_out_finish): Call add_AT_lineptr if pubnames or pubtypes is
	    non-empty.  When dealing with pubnames, change assertion to conditional.
	    Call pubtypes_section_empty.  Likewise when dealing with pubtypes.
	    Move code checking for empty section to...
	    (pubtypes_section_empty): Here.
	    * target.def: Switch boolean to enable pubnames and pubtypes.

    r182891:

	2012-01-04   Sterling Augustine  <saugustine@google.com>

	    * dwarf2out.c (add_pubname): Move conditional clause from outer to
	    inner if-statement.
	    (dwarf2out_finish): Fix conditions to output DW_AT_GNU_pubnames and
	    DW_AT_GNU_pubtypes.  Move decision to output pubnames and pubtypes from
	    here...
	    (output_pubnames): ...to here.
	    (pubtypes_section_empty): Delete unused function.

    r183042:

	2012-01-09   Sterling Augustine  <saugustine@google.com>

	    * dwarf2out.c (output_pubnames): Add check for info_section_emitted.

    r183320:

	2012-01-19   Sterling Augustine  <saugustine@google.com>

	    * dwarf2out.c (break_out_comdat_types): Add DW_AT_GNU_pubnames and
	    DW_AT_GNU_pubtypes attributes.

2012-06-15   Easwaran Raman  <eraman@google.com>
  Cherrypick r188675 from trunk.
	2012-06-15  Easwaran Raman  <eraman@google.com>
		* passes.c (init_optimization_passes): Remove pass_call_cdce
		from its current position and insert after pass_dce.

2012-06-09   Xinliang Davidl Li  <davidxl@google.com>

	l-ipo.c (pop_module_scope): Stop timer after
	pending decl handling.

2012-06-09   Xinliang Davidl Li  <davidxl@google.com>

	c-family/c-opts.c (lipo_max_mem_reached):  Scale up
	memory allocated to acount for optimizer uses.
	params.def: tune up max lipo mem parameter to 2.8G.

2012-06-07   Easwaran Raman  <eraman@google.com>
  Backport r179412 from google/gcc-4_6 branch.
	2011-09-30  Easwaran Raman  <eraman@google.com>

		* tree-profile.c (gcov_sample_counter_decl): Add GTY marker.
		(gcov_sampling_rate_decl): Likewise.
		(add_sampling_to_edge_counters): Do not free
		instrumentation_to_be_sampled.
		(cleanup_instrumentation_sampling): New function.
		(tree_profiling): Call cleanup_instrumentation_sampling at the end.

2012-06-07  Teresa Johnson  <tejohnson@google.com>

	Backport from google/main r188308.
	2012-06-07  Teresa Johnson  <tejohnson@google.com>

	* doc/invoke.texi: Rename -fripa-peel-size-limit
	and -fripa-unroll-size-limit to -fpeel-codesize-limit and
	-funroll-codesize-limit, respectively. Remove
	codesize-hotness-threshold param and add unrollpeel-hotness-threshold
	param.
	* gcov-io.c (gcov_write_summary): Write new summary info.
	(gcov_read_summary): Read new summary info.
	* gcov-io.h (GCOV_TAG_SUMMARY_LENGTH): Update for new summary info.
	(struct gcov_ctr_summary): Add new summary info: num_hot_counters.
	* loop-unroll.c (limit_code_size): Renamed to
	code_size_limit_factor.
	(code_size_limit_factor): Renamed from limit_code size. Update to
	use new summary info and refine for very hot loops.
	(decide_unrolling_and_peeling): Remove call to limit_code_size.
	(decide_unroll_runtime_iterations): Call code_size_limit_factor
	to control the unroll factor.
	(decide_peel_simple, decide_unroll_stupid): Ditto.
	* coverage.c (read_counts_file): Propagate new summary info.
	* common.opt: Rename -fripa-peel-size-limit
	and -fripa-unroll-size-limit to -fpeel-codesize-limit and
	-funroll-codesize-limit, respectively.
	* tree-optimize.c (cgraph_codesize_estimate): Remove.
	(compute_codesize_estimate): Remove.
	(execute_cleanup_cfg_post_optimizing): Remove call to
	compute_codesize_estimate.
	* params.def (PARAM_UNROLLPEEL_CODESIZE_THRESHOLD): Remove.
	(PARAM_UNROLLPEEL_HOTNESS_THRESHOLD): Add.
	* gcov-dump.c (tag_summary): Dump new summary info.

2012-06-07  Dehao Chen  <dehao@google.com>

	* gcc/cgraph.c (cgraph_node): Add attribute to function decl.
	* gcc/opts-global.c (add_attribute_pattern): New function.
	(pattern_match_function_attributes): New function.
	(handle_common_deferred_options): Handle new options.
	* gcc/opts.c (common_handle_option): Handle new options.
	* gcc/opts.h (handle_common_deferred_options): New function.
	* gcc/common.opt (ffunction_attribute_list): New option.

2012-06-06   Diego Novillo  <dnovillo@google.com>

  Cherry pick rev 188207.

      2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
      
	    PR c++/53524
	    * doc/invoke.texi (Wenum-compare): Update documentation.
      
      /cp
      2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
      
	    PR c++/53524
	    * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
	    to control enumeral mismatch in conditional expression too.
      
      /testsuite
      2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
      
	    PR c++/53524
	    * g++.dg/warn/Wenum-compare-no-2: New.

2012-06-06   Xinliang David Li  <davidxl@google.com>

	coverage.c (coverage_finish): Do not remove gcda file with
	-frandom-seed option -- this recovers the compiler behavior
	before gcc4_7.


2012-06-05   Diego Novillo  <dnovillo@google.com>

	Merge from gcc-4_7-branch rev 188095 (minus rev 187877).

2012-06-02  Xinliang David Li  <davidxl@google.com>

	l-ipo.c (promote_static_var_func): Promoted static variables from
	primary modules should be marked as externally visible and being
	prevailing def to avoid being localized again later.


2012-06-02   Easwaran Raman  <eraman@google.com>

	* gcc/ipa-inline.c (want_early_inline_function_p): Boost early
	inlining of comdats. Allow more tuning by using params.
	* gcc/params.def (PARAM_EARLY_INLINING_INSNS_NON_LEAF): New param.
	(PARAM_EARLY_INLINING_INSNS_ANY): Likewise.
	(PARAM_EARLY_INLINING_INSNS_COMDAT): Likewise.

2012-05-30  Dehao Chen  <dehao@google.com>

	* predict.c (predict_extra_loop_exit): New function to predict for
	extra loop exits resulted from short-circuit conditions.

2012-05-24   Rong Xu  <xur@google.com>

	* l-ipo.c (create_unique_name): Make temp names demanglable.

2012-05-21   Easwaran Raman  <eraman@google.com>

	* gcc/basic-block.h (maybe_hot_count_p): New declaration.
	* gcc/cgraph.c (dump_cgraph_node): Dump max_bb_count.
	(cgraph_clone_node): Update max_bb_count.
	* gcc/cgraph.h (cgraph_node): Add new field max_bb_count.
	* gcc/cgraphbuild.c (rebuild_cgraph_edges): Compute max_bb_count.
	* gcc/cgraphunit.c (cgraph_copy_node_for_versioning): Copy max_bb_count.
	* gcc/ipa-inline-transform.c (inline_call): Update max_bb_count of
	the function to which this callsite is eventually inlined to.
	* gcc/ipa-inline.c (edge_hot_enough_p): New function.
	(want_inline_small_function_p): Call edge_hot_enough_p instead
	of cgraph_maybe_hot_edge_p.
	* gcc/params.def (PARAM_INLINE_FUNCTION_OVERHEAD_SIZE): New param.
	* gcc/predict.c (maybe_hot_count_p): Make it non static.
	* gcc/testsuite/gcc.dg/tree-prof/inliner-1.c: Add option
	--param inline-hot-caller=0.
	* gcc/testsuite/gcc.dg/tree-prof/lipo/inliner-1_0.c: Likewise.

2012-05-18   Teresa Johnson  <tejohnson@google.com>

	Backport from google/main r187660:
	2012-05-18   Teresa Johnson  <tejohnson@google.com>

	* doc/invoke.texi: Update the documentation with new params.
	* loop-unroll.c (loop_has_FP_comp): Remove function.
	(max_unroll_with_branches): New function.
	(decide_unroll_constant_iterations, decide_unroll_runtime_iterations):
	Add heuristic to avoid increasing branch mispredicts when unrolling.
	(limit_code_size, decide_peel_simple, decide_unroll_stupid): Retrieve
	number of branches from niter_desc instead of via function that walks
	loop.
	* loop-iv.c (get_simple_loop_desc): Invoke new analyze_loop_insns
	function, and add guards to enable this function to work for the
	outermost loop.
	* cfgloop.c (insn_has_fp_set, analyze_loop_insns): New functions.
	(num_loop_branches): Remove.
	* cfgloop.h (struct niter_desc): Added new fields to cache additional
	loop analysis information.
	(num_loop_branches): Remove.
	(analyze_loop_insns): Declare.
	* params.def (PARAM_MIN_ITER_UNROLL_WITH_BRANCHES): New param.
	(PARAM_UNROLL_OUTER_LOOP_BRANCH_BUDGET): Ditto.

2012-05-16  Sriraman Tallam  <tmsriram@google.com>

	Port from google/gcc-4_6 
	r177289, r177308, r179104, r179289, r179303, r179404, r182447
	
	* doc/invoke.texi: Document -freorder-functions=*
	* cgraphbuild.c (remove_cgraph_callee_edges): Preserve
	callgraph till pass_final.
	* configure: Regenerate.
	* final.c (dump_cgraph_profiles): New function.
	(rest_of_handle_final): Call dumping of cgraph profiles in
	.gnu.text.callgraph sections.
	* gcc.c (LINK_COMMAND_SPEC): Process -freorder-functions=
	(set_func_reorder_linker_plugin_spec): New function.
	(main): Call function reorder plugin.
	* testsuite/lib/target-supports-dg.exp
	(dg-require-section-exclude): New proc.
	(dg-require-linker-function-reordering-plugin): New proc.
	* testsuite/lib/target-supports.exp
	(check_section_exclude_available): New proc.
	(check_linker_function_reordering_plugin_supported): New proc.
	* testsuite/g++.dg/tree-prof/callgraph-profiles.C: New test.
	* config.in: undef FRPLUGINSONAME
	* opts.c
	* configure.ac (FRPLUGINSONAME): Define 
	* common.opt (fcallgraph-profiles-sections): Remove.
	(freorder-functions=): New option.
	* tree-optimize.c (gate_all_optimizations): Mark last cleanup of
	callgraph.
	* config.host: Set function reordering plugin.
	* params.def (PARAM_NOTE_CGRAPH_SECTION_EDGE_THRESHOLD): Remove.
	(PARAM_GNU_CGRAPH_SECTION_EDGE_THRESHOLD): Add.

2012-05-16  Xinliang David Li  <davidxl@google.com>

	* tree-profile.c (add_sampling_wrapper): Call
	add_referenced_var for sampling related variables.
	(gimple_init_instrumentation_sampling): Do not
	call varpool_finalize for external decls.

2012-05-16  Xinliang David Li  <davidxl@google.com>

	* cgraph.c (cgraph_set_call_stmt): Resolve target
	to the real target in LIPO mode.
	(cgraph_create_virtual_clone): Ditto.

2012-05-16  Xinliang David Li  <davidxl@google.com>

	* c-family/c-opts.c (is_parsing_done_p): New function.
	* cp/semantics.c (cp_clear_constexpr_hashtable): Ditto.
	* cp/decl2.c (cp_clear_defered_fns): Clear constexpr hash.
	* cp/mangle.c (mangle_decl): Save decl for binding clearing.
	* cp/cp-tree.h: New prototype declaration.
	* l-ipo.c: New prototype declaration.


2012-05-15   Teresa Johnson  <tejohnson@google.com>

	Backport from google/main r187536:
	2012-05-15   Teresa Johnson  <tejohnson@google.com>

	* doc/invoke.texi (profile-generate-sampling-period): Rename
	from profile-generate-sampling-rate.
	* tree-profile.c (gcov_sampling_period_decl): Rename from
	gcov_sampling_rate_decl.
	(gcov_has_sampling_decl): New variable.
	(insert_if_then, add_sampling_wrapper): Rename variables from "*rate*"
	to "*period*".
	(gimple_init_instrumentation_sampling): Ditto, and add handling
	for gcov_has_sampling_decl.
	* params.def (profile-generate-sampling-period): Rename
	from profile-generate-sampling-rate.

2012-05-15   Diego Novillo  <dnovillo@google.com>

	Merge from gcc-4_7-branch rev 187362.

2012-05-14  Xinliang David Li  <davidxl@google.com>

	* cgraphbuild.c (record_reference_to_real_target_from_alias):
	New function.
	(mark_address): Record reference to the resolved target node
	in LIPO mode. Also record reference to alias's real target.
	(rebuild_cgraph_edges): As above.
	* cgraph.c (cgraph_clone_edge): Create cgraph edge for
	indirect call inlining edge properly.
	* l-ipo.c (cgraph_lipo_get_resolved_node_1): Do not force
	creating cgraph node.
	(fixup_reference_list): New function.
	(varpool_do_link): Fix up initializer's references to functions
	after linking.

2012-05-09  Teresa Johnson  <tejohnson@google.com>

	Backport from trunk r187297:
	2012-05-08   Teresa Johnson  <tejohnson@google.com>

	* gcov-io.h (__gcov_reset, __gcov_dump): Declare.
	* doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.

2012-05-08  Xinliang David Li  <davidxl@google.com>

	Fix issue 6457844

	* ipa-inline-transform.c (inline_call): When
	fixing up cgraph edge callees which are aliases,
	find the real resolved alias target in LIPO mode.
	* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
	Remove unnecssary check in LIPO mode.
	* ipa-inline.c (inline_small_functions): Compute
	max_count properly by considering indirect edges.



2012-05-08  Xinliang David Li  <davidxl@google.com>

	Fix issue 6461583

	* profile.c (instrument_values): Skip static ctor/dtors
	for ic counter allocation to match instrumentation.
	* tree-profile.c (gimple_gen_ic_profiler): Remove
	unnecessary guard in FDO mode.

2012-05-03  Dehao Chen  <dehao@google.com>

	Backport r185949 from google-main.

	2012-03-29  Dehao Chen  <dehao@google.com>

		* predict.c (predict_iv_comparison): Add the comparison of
		induction variable against its initial value.

2012-05-01   Rong Xu  <xur@google.com>

	Backport r187028 from google-main.

	2012-05-01   Rong Xu  <xur@google.com>

		* gcc/cp/rtti.c (get_tinfo_decl): generate tinfo for aux 
		modules in LIPO.

2012-04-25   Diego Novillo  <dnovillo@google.com>

	Add better commit message for recent merge.

2012-04-25   Diego Novillo  <dnovillo@google.com>

	Merge from gcc-4_7-branch rev 186721.

2012-04-20  Xinliang David Li  <davidxl@google.com>

	Backport r186622 from trunk
	* tree-ssa-copy.c (propagate_tree_value_into_stmt): Use
	update_call_from_tree when propagating into a call.


	* varasm.c (alias_target_node_exist_p): New function.
	(finish_alias_1): Use the new function in LIPO mode.

2012-04-12  Xinliang David Li  <davidxl@google.com>

	* cgraphbuild.c (rebuild_cgraph_edges): Add ipa reference from
	an alias node to its body node (post LIPO linking one) to avoid
	the body being eliminated.
	* varasm.c (finish_aliases_1): Do not emit error for an alias
	which is artificial in LIPO mode -- it exists but can not be
	found.

2012-04-11  Teresa Johnson  <tejohnson@google.com>

	Revert r182254 since it is subsumed by r186332.

2012-04-11   Teresa Johnson  <tejohnson@google.com>

	Backport r186176 from trunk.

	2012-04-05  Teresa Johnson  <tejohnson@google.com>
		    H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.h (ix86_tune_indices): Add
	X86_TUNE_LCP_STALL.
	* config/i386/i386.md (move immediate to memory peephole2):
	Add cases for HImode move when LCP stall avoidance is needed.
	* config/i386/i386.c (initial_ix86_tune_features): Initialize
	X86_TUNE_LCP_STALL entry.

2012-04-10  Xinliang David Li  <davidxl@google.com>

	* mversn-dispatch.c (builtin_dispatch_ipa_clone): returns
	TODO flags when there are changes.
	(do_convert_builtin_dispatch): Ditto.

2012-04-09  Xinliang David Li  <davidxl@google.com>

	Fix b/6300341: LIPO profile-gen ICEs 

	* coverage.c (converage_dc_end_function): Properly initialize
	the fn_decl and ctr_data field of the coverage_data.

2012-03-07  Sriraman Tallam  <tmsriram@google.com>

	Backport from google/main rev 185083

		* config/i386/i386.c (build_struct_with_one_bit_fields): New function.
		(make_var_decl): New function.
		(get_field_from_struct): New function.
		(fold_builtin_target): New function.
		(ix86_fold_builtin): New function.
		(ix86_expand_builtin): Expand new builtins by folding them.
		(make_platform_builtin): New functions.
		(ix86_init_platform_type_builtins): Make the new builtins.
		(ix86_init_builtins): Make new builtins to detect CPU type.
		(TARGET_FOLD_BUILTIN): New macro.
		(IX86_BUILTIN_CPU_SUPPORTS_CMOV): New enum value.
		(IX86_BUILTIN_CPU_SUPPORTS_MMX): New enum value.
		(IX86_BUILTIN_CPU_SUPPORTS_POPCOUNT): New enum value.
		(IX86_BUILTIN_CPU_SUPPORTS_SSE): New enum value.
		(IX86_BUILTIN_CPU_SUPPORTS_SSE2): New enum value.
		(IX86_BUILTIN_CPU_SUPPORTS_SSE3): New enum value.
		(IX86_BUILTIN_CPU_SUPPORTS_SSSE3): New enum value.
		(IX86_BUILTIN_CPU_SUPPORTS_SSE4_1): New enum value.
		(IX86_BUILTIN_CPU_SUPPORTS_SSE4_2): New enum value.
		(IX86_BUILTIN_CPU_INIT): New enum value.
		(IX86_BUILTIN_CPU_IS_AMD): New enum value.
		(IX86_BUILTIN_CPU_IS_INTEL): New enum value.
		(IX86_BUILTIN_CPU_IS_INTEL_ATOM): New enum value.
		(IX86_BUILTIN_CPU_IS_INTEL_CORE2): New enum value.
		(IX86_BUILTIN_CPU_IS_INTEL_COREI7_NEHALEM): New enum value.
		(IX86_BUILTIN_CPU_IS_INTEL_COREI7_WESTMERE): New enum value.
		(IX86_BUILTIN_CPU_IS_INTEL_COREI7_SANDYBRIDGE): New enum value.
		(IX86_BUILTIN_CPU_IS_AMDFAM10_BARCELONA): New enum value.
		(IX86_BUILTIN_CPU_IS_AMDFAM10_SHANGHAI): New enum value.
		(IX86_BUILTIN_CPU_IS_AMDFAM10_ISTANBUL): New enum value.
		(IX86_BUILTIN_CPU_IS_AMDFAM15H_BDVER1): New enum value.
		(IX86_BUILTIN_CPU_IS_AMDFAM15H_BDVER2): New enum value.
		* config/i386/i386-builtin-types.def: New function type.
		* testsuite/gcc.target/builtin_target.c: New testcase.

2012-03-07  Diego Novillo  <dnovillo@google.com>

	Merge from google/main rev 184996.

2012-02-26  Ollie Wild  <aaw@google.com>

	* BASE-VER: Change to 4.7.x-google.

2012-02-23   Diego Novillo  <dnovillo@google.com>

	* BASE-VER: Change to 4.7.0-google.
	* DEV-PHASE: Change to prerelease.