gned int
> to_column);
>
> +/* Makes sure SET has at least one more unused line_map allocated.
> + If it doesn't, this function allocates more room in SET. */
> +
> +static inline void
> +linemap_ensure_extra_space_available (struct line_maps *set)
> +{
> + if (set->used == set->allocated)
> +{
> + line_map_realloc reallocator;
> + reallocator = set->reallocator ? set->reallocator : xrealloc;
> +
> + set->allocated = 2 * set->allocated + 256;
> + set->maps = (struct line_map *) (*reallocator) (set->maps,
> + set->allocated * sizeof (struct line_map));
> +
> + memset (&set->maps[set->used], 0,
> + (set->allocated - set->used) * sizeof (struct line_map));
> +}
> +}
> +
> #endif /* !LIBCPP_LINE_MAP_H */
> diff --git a/libcpp/line-map.c b/libcpp/line-map.c
> index 86e2484..01ed7b5 100644
> --- a/libcpp/line-map.c
> +++ b/libcpp/line-map.c
> @@ -94,18 +94,7 @@ linemap_add (struct line_maps *set, enum lc_reason
> reason,
>if (set->used && start_location < set->maps[set->used -
> 1].start_location)
> abort ();
>
> - if (set->used == set->allocated)
> -{
> - line_map_realloc reallocator
> - = set->reallocator ? set->reallocator : xrealloc;
> - set->allocated = 2 * set->allocated + 256;
> - set->maps
> - = (struct line_map *) (*reallocator) (set->maps,
> - set->allocated
> - * sizeof (struct line_map));
> - memset (&set->maps[set->used], 0, ((set->allocated - set->used)
> - * sizeof (struct line_map)));
> -}
> + linemap_ensure_extra_space_available (set);
>
>map = &set->maps[set->used];
>
> @@ -212,7 +201,7 @@ linemap_line_start (struct line_maps *set, linenum_type
> to_line,
> /* If the column number is ridiculous or we've allocated a huge
>number of source_locations, give up on column numbers. */
> max_column_hint = 0;
> - if (highest >0xF000)
> + if (highest > 0xF000)
> return 0;
> column_bits = 0;
> }
>
> --
> This patch is available for review at http://codereview.appspot.com/4836050
>
--
Lawrence Crowl
This patch ads a bunch of small tests for multi-pph includes.
Tested on x64.
Index: gcc/testsuite/ChangeLog.pph
2011-08-04 Lawrence Crowl
* g++.dg/pph/README: Add new file types.
* g++.dg/pph/a0expinstinl.h: New.
* g++.dg/pph/a0expinstnin.h: New.
* g++.dg
This patch updates tests to clear conflicting commits.
The change needed for x6rtti.cc does not make sense to me.
Tested on x64.
Index: gcc/testsuite/ChangeLog.pph
2011-08-08 Lawrence Crowl
* (g++.dg/pph/x6dynarray4.cc): Remove dg-prune-output.
* (g++.dg/pph/x4keyed.cc
ap -I. (test for bogus
> messages, line )
> # of expected passes 277
> # of unexpected failures 5
> # of unexpected successes 45
> # of expected failures42
>
> Gab
>
> On Fri, Aug 5, 2011 at 11:15 AM, Lawrence Crowl wrote:
>> This
on x64.
Index: gcc/testsuite/ChangeLog.pph
2011-08-10 Lawrence Crowl
* lib/dg-pph.exp: Compile with -fno-dwarf2-cfi-asm to reduce
environmental differences.
* g++.dg/pph/z0expinstnin1.h: Remove in favor of new tests.
* g++.dg/pph/x0tmplfuncninl3.h: New
ound (again). I merged all the
> different fetch_op tests into one, and added all the new tests. now
> there is simply 5 tests files sync-mem-op-[1-5].c to test all these
> routines for (1)char, (2)short, (3)int, (4)long long, and (5)__int128_t.
>
> Bootstrapped and no new regressions on x86-64. (I am re-verifying
> overnight however). OK for the branch?
>
> Andrew
>
>
--
Lawrence Crowl
.
Test x7rtti.cc was unresolved because the run test was failing to
compile. Updated test x7rtti.cc to supress the dg-run, until the
compile problems are fixed.
Tests run on x64.
Index: gcc/testsuite/ChangeLog.pph
2011-08-29 Lawrence Crowl
* lib/dg-pph.exp: Move -fno-dwarf2-cfi-asm
.
Test x7rtti.cc was unresolved because the run test was failing to
compile. Updated test x7rtti.cc to supress the dg-run, until the
compile problems are fixed.
Tests run on x64.
Index: gcc/testsuite/ChangeLog.pph
2011-09-07 Lawrence Crowl
* a0vardef.h: New.
* c0vardef1.h
no single expected diff checksum
> would work for both of us.
>
> Cheers,
> Gab
>
--
Lawrence Crowl
Restore compiling the tests with -fno-dwarf2-cfi-asm. Failure to do
so results in different assembly output on different platforms due to
different assembler support for exceptions.
Index: gcc/testsuite/ChangeLog.pph
2011-09-12 Lawrence Crowl
* lib/dg-pph.exp: Restore -fno-dwarf2
/ChangeLog.pph
2011-09-17 Lawrence Crowl
* pph.h (pph_tree_code_text): New.
(pph_dump_min_decl): New.
* pph.c (pph_tree_code_text): New. Update users of tree_code_name
to call this function instead, here and in other files.
(pph_dump_min_decl): New
additional information needed for decl merging. Reads take
the corresponding actions. We do not yet to symbol lookup or merging.
Tested on x64.
Index: gcc/cp/ChangeLog.pph
2011-09-19 Lawrence Crowl
* pph-streamer-out.c (pph_out_binding_level_1): Read this_entity first.
Call
passing and checking. Most trees streamed
will not be direct children of namespaces.
--
Lawrence Crowl
10234.1 second base and 10272.7 seconds with patch for a 0.377%
slow down.
Tested on x86-64.
Index: gcc/ChangeLog
2011-09-22 Lawrence Crowl
* tree.h (tree_check): New.
(TREE_CHECK): Use inline function above instead of __extension__.
(tree_not_check): New.
(TR
merge structs, which we may need due to users
binding directly to members.
Index: gcc/testsuite/ChangeLog.pph
2011-10-06 Lawrence Crowl
* g++.dg/pph/c4inline.cc: Clarify failure.
* g++.dg/pph/x4keyno.cc: Clarify failure.
* g++.dg/pph/x4keyex.cc: Clarify failure.
Move several static inline functions from pph-streamer.h to
pph-streamer-{out,in}.c. This is part 1 of several patches,
and minimizes diffs.
Index: gcc/cp/ChangeLog.pph
2011-10-07 Lawrence Crowl
* pph-streamer.h (pph_out_tree_array): Remove unused.
(pph_in_tree_array
Move several static inline functions from pph-streamer.h to
pph-streamer-{out,in}.c. This is part 2 of several patches,
and minimizes diffs.
Index: gcc/cp/ChangeLog.pph
2011-10-07 Lawrence Crowl
* pph-streamer.h (pph_in_chain): Moved to pph-streamer-in.c as extern
Remove #if 0 scaffolding. This is part 3 of several patches,
and minimizes diffs.
Index: gcc/cp/ChangeLog.pph
2011-10-07 Lawrence Crowl
* pph-streamer.h: Remove #if 0 scaffolding.
Index: gcc/cp/pph-streamer.h
This patch makes pph.h the single interface header for PPH.
The pph-streamer.h header is now an internal header for use
within the pph*.c files. Some declarations have moved from
one header to the other to make that possible.
Index: gcc/cp/ChangeLog.pph
2011-10-07 Lawrence Crowl
. This will
eventually help with member declaration versus definition issues.
Change test cases to reflect the above.
Comment on other failing tests.
Comment on failing cache handling for merge.
Tested on x64.
Index: gcc/testsuite/ChangeLog.pph
2011-10-12 Lawrence Crowl
* g++.dg
2011-10-12 Lawrence Crowl
* pph-streamer-out.c (pph_write_any_tree): Rename to pph_out_any_tree.
(pph_write_mergeable_links): Rename to pph_out_mergeable_links.
(pph_write_tree_body): Rename to pph_out_tree_body.
(pph_write_tree_header): Rename to
Remove old trace facility. Having done so, rename pph_new_trace_tree
to pph_trace_tree and remove its unused stream parameter. Adjust
callers to match.
Bootstrap and PPH tests.
Index: gcc/cp/ChangeLog.pph
2011-10-12 Lawrence Crowl
* pph-streamer.h (enum pph_trace_type): Remove
Mark test x3hardorder.cc as passing. Update many other tests to
indicate their current failure reason. Fix the readme.
Index: gcc/testsuite/ChangeLog.pph
2011-10-13 Lawrence Crowl
* g++.dg/pph/README: Put z files in regular expression.
* g++.dg/pph/x3hardorder.cc: Mark
are merging only the global
namespace. Subsequent patches will merge nested namespaces and
classes.
Tested on x64.
Index: gcc/testsuite/ChangeLog.pph
2011-10-14 Lawrence Crowl
* g++.dg/pph/c3variables.cc: Mark fixed.
* g++.dg/pph/c4vardef.cc: Mark fixed.
* g++.dg
to the trace output. This capability is
used to emit merge names into the trace.
* Add functions pph_out_struct_function_for_decl and
pph_out_cgraph_node_for_decl to provide a better debugging handle on
symtab expansion.
Index: gcc/testsuite/ChangeLog.pph
2012-03-07 Lawrence Crowl
x4neststruct2.cc. The latter test demonstrates
the problem with a failure.
Tested on x64.
Index: gcc/c-family/ChangeLog.pph
2012-03-09 Lawrence Crowl
* c.opt (-fprimary-system-header-okay): New.
* c-opts.c (c_common_handle_option): Add handling for
-fprimary-system-header
option -fpph-check to refine our check for headers compatible
with PPH. It implies -fprimary-system-header-okay and checks for the main
source file missing a guard. Generating a pph file implies the same check.
Tested on x64.
Index: gcc/c-family/ChangeLog.pph
2012-03-15 Lawrence Crowl
were missing null pointer checks. Add them.
Tested on x64.
Index: gcc/testsuite/ChangeLog.pph
2012-03-16 Lawrence Crowl
* g++.dg/pph/README: Clarify p category.
* g++.dg/pph/c1anonymous1.h: Mark passing.
* g++.dg/pph/c1anonymous2.h: Mark passing.
* g++.d
ce
> # configuration), copy from the build or source tree to the install
> # tree using only the human-maintained file lists and directory
> @@ -1291,7 +1299,7 @@
> $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
>
> # By adding these files here, automake will remove them for 'make
> clean' -CLEANFILES = ${pch_output} ${pch_output_anchors} stamp-host
> +CLEANFILES = ${pch_output} ${pch_output_anchors} ${pph_output}
> stamp-host
> # To remove directories.
> clean-local:
--
Lawrence Crowl
emitted.
Tested on x64.
Index: gcc/testsuite/ChangeLog.pph
2012-03-22 Lawrence Crowl
* g++.dg/pph/x1tmpldfltparm.cc: Failure change from merging to excess
code generation.
Index: gcc/cp/ChangeLog.pph
2012-03-22 Diego Novillo
* error.c (dump_location_qualifier
licitly allow this? Or should we just use a lock in
> > > this case?
> > Andrew, you had a bit of back-and-forth with someone about this.
> > Can you dig that up?
>
> yes, this keeps coming up again and again I think you should
> take it up with Lawrence Cr
Lawrence Crowl
* g++.dg/pph/c0anticipated.h: New.
* g++.dg/pph/c1anticipated.cc: New.
* g++.dg/pph/x0samename1.h: New.
* g++.dg/pph/x0samename2.h: New.
* g++.dg/pph/x4samename.cc: New.
Index: gcc/cp/ChangeLog.pph
2011-11-30 Lawrence Crowl
, we alway emit all namespaces into the PPH file. We may
not emit decls within them.
There is an overloading bug in this patch, but I am pushing it up
now to avoid keeping so large a change hanging.
Index: gcc/testsuite/ChangeLog.pph
2011-01-17 Lawrence Crowl
* g++.dg/pph/x6dynarray3
Correct construction of bindings for overloaded symbols.
Index: gcc/testsuite/ChangeLog.pph
2011-01-20 Lawrence Crowl
* g++.dg/pph/x4overset1.cc: Make passing.
* g++.dg/pph/x4overset2.cc: Make wanted assembly diff.
* g++.dg/pph/x4overset3.cc: Make passing
ow. These will be treated as passes.
Clarify a few other failures.
Make various debug/trace dump changes.
Index: gcc/testsuite/ChangeLog.pph
2012-01-24 Lawrence Crowl
* lib/dg-pph.exp: Add an asm 'xokay' for benign assembly differences.
* g++.dg/pph/x4keyno.cc:
errors.
* g++.dg/pph/x5dynarray7.h: Add one bogus error.
* g++.dg/pph/x6dynarray6.h: Add one bogus error.
2012-01-24 Lawrence Crowl
Index: gcc/cp/ChangeLog.pph
2012-01-25 Lawrence Crowl
* pph-core.c (pph_dump_tree_name): Refactor.
(pph_dump_overload_names
Emit some state hidden in cp/decl2.c: pending_statics, deferred_fns, and
no_linkage_decls.
One tests is now passing, two tests are now okay, and three tests have
improved, but are still failing.
Index: gcc/testsuite/ChangeLog.pph
2012-01-26 Lawrence Crowl
* g++.dg/pph/x1tmplclass1
first, so that they can be used while reading other
fields.
The patch adds some new tests for the upcoming type merging.
Tested on x64.
Index: gcc/testsuite/ChangeLog.pph
2012-02-01 Lawrence Crowl
* g++.dg/pph/c0struct.h: Rename to c0struct2.h.
* g++.dg/pph/c0struct1.h: Ne
cases x*incomplete*, which progressively add more information to the
classes in different configurations of pph files.
Tested on x64.
Index: gcc/testsuite/ChangeLog.pph
2012-02-01 Lawrence Crowl
* g++.dg/pph/x4structover1.cc: Mark fixed.
* g++.dg/pph/a0incomplete2.hi: New
/ChangeLog.pph
2012-02-15 Lawrence Crowl
* lib/dg-pph.exp: Clarify kind of test in log file.
* g++.dg/pph/x0funcinl1.h: New.
* g++.dg/pph/x0funcinl2.h: New.
* g++.dg/pph/x0funcinl3.h: New.
* g++.dg/pph/x3funcinl12.cc: New.
* g++.dg/pph/x3funcinl13.cc
errors
> make: *** [cp/pph-in.o] Error 1
>
> Could you take a look?
This patch avoids a false "used unititalized" error by assigning
values soon to be overwritten.
Tested on x64.
Index: gcc/cp/ChangeLog.pph
2012-02-16 Lawrence Crow
.
In addition, there are a couple of fixes to protect against null
pointers.
Tested on x64.
Index: gcc/testsuite/ChangeLog.pph
2012-02-23 Lawrence Crowl
* g++.dg/pph/x2incomplete4.cc: Make expected assembley diff.
Index: gcc/cp/ChangeLog.pph
2012-02-23 Lawrence Crowl
compilation problems have been isolated to a single line and
statement, which enables the above. line.
* One test has changed trailing include text into a comment.
Tested on x64.
Index: gcc/testsuite/ChangeLog.pph
2012-03-01 Lawrence Crowl
* lib/dg-pph.exp: Change search for dg-xfail
Split C++ test x1funcstatic.cc into a C test and a C++ test.
Stream out and in various C++ tree members.
Index: gcc/testsuite/ChangeLog.pph
2011-05-20 Lawrence Crowl
* x1funcstatic.h: Rename to c1funcstatic.h, as contents are C only.
* x1funcstatic.c: Use c1funcstatic.h
ATTRIBUTE_UNUSED,
> else if (TREE_CODE (expr) == TEMPLATE_INFO)
> {
> TI_TYPEDEFS_NEEDING_ACCESS_CHECKING (expr)
> - = pph_stream_read_tree_vec (stream);
> + = pph_stream_read_qual_use_vec (stream);
> }
> else if (TREE_CODE (expr) == TREE_LIST)
> ; /* FIXME pph: already handled? */
>
> http://codereview.appspot.com/4550064/
>
LGTM
--
Lawrence Crowl
the style.
Index: gcc/c-family/ChangeLog.pph
2011-05-24 Lawrence Crowl
* c.opt (fpph-untree): Add.
Index: gcc/cp/ChangeLog.pph
2011-05-24 Lawrence Crowl
* pph-streamer-in.c (pph_stream_read_tree): Refactor
from nested if statements to a switch statement
In pph_stream_read_tree and pph_stream_write_tree, reformat for style.
This step was skipped in the last patch to make diffs more sensible.
Index: gcc/cp/ChangeLog.pph
2011-05-25 Lawrence Crowl
* pph-streamer-in.c (pph_stream_read_tree): Reformat for style.
* pph-streamer
Move TEMPLATE_DECL case next to other DECLs in pph_stream_read_tree
and pph_stream_write_tree. Move pph_output_chain_filtered to just
before its use.
Index: gcc/cp/ChangeLog.pph
2011-05-26 Lawrence Crowl
* pph-streamer-in.c (pph_stream_read_tree): Move TEMPLATE_DECL case
/ChangeLog.pph
2011-05-26 Lawrence Crowl
* cp-objcp-common.c (cp_tree_size): Add case TREE_BINFO.
* pph.c (pph_read_file): Also log closing of PPH files.
* pph-streamer-in.c (pph_stream_read_tree):
Organize the switch into tcc_* chunks.
Move tcc_statement
On 5/26/11, Nathan Froyd wrote:
> On 05/26/2011 10:24 PM, Lawrence Crowl wrote:
>> Index: gcc/cp/cp-objcp-common.c
>> ===
>> --- gcc/cp/cp-objcp-common.c (revision 174301)
>> +++ gcc/cp/cp-objcp-common.c
Not sure why you needed to add this here?
It appears on of the other fixes in that patch fixed the issue,
so I will remove this change.
>
> http://codereview.appspot.com/4526083/
>
--
Lawrence Crowl
Remove case TREE_BINFO in cp_tree_size().
Index: gcc/cp/ChangeLog.pph
2011-05-27 Lawrence Crowl
* cp-objcp-common.c (cp_tree_size): Remove case TREE_BINFO.
Index: gcc/cp/cp-objcp-common.c
===
--- gcc/cp/cp-objcp
The struct lang_decl_fn contains a struct lang_decl_min as a field,
but we were not streaming it. This patch streams that field. This
patch doesn't make any new testcases work, but it makes them fail
later.
Tested on x86-64. Committed.
Index: gcc/cp/ChangeLog.pph
2011-06-01 Lawrence
IL: / p
/^XPASS: / p
/^FAIL: / p
d
'
you should get no individual tests listed.
Index: gcc/testsuite/ChangeLog.pph
2011-06-05 Lawrence Crowl
* lib/dg-pph.exp (dg-pph-hdr): Add blank lines to logfile.
Format if statements and
later ICEs.
Tests adjusted to reflect new reality.
Tested on x86-64. Committed.
Index: gcc/testsuite/ChangeLog.pph
2011-06-05 Lawrence Crowl
* g++.dg/pph/x1special.cc: Change to new ICE.
* g++.dg/pph/x1template.cc: Change old ICE to new location.
* g++.dg/pph
ones you mentioned
> can't be easily XFAIL'd?
These are probably changes in the line number of the ICE,
and so the dg-bogus needs updating.
--
Lawrence Crowl
it enables listing XFAILs that need work.
Index: gcc/testsuite/ChangeLog.pph
2011-06-08 Lawrence Crowl
* lib/dg-pph.exp (dg-pph-pos): Stop redundantly reporting a missing
pph assembly as an xfail when its compile xfails.
* g++.dg/pph/x1typerefs.cc: Replace ICE xfail with a b
build to compare against.
But the clean build isn't a decent comparison. The existing tools
only compare against whether or not tests fail. They fail to
report that a test failed for different reasons. Given that there
are only twelve tests for which there is a concern, I think we are
better off know where we are.
--
Lawrence Crowl
Some builtin macros are more builtin than others. In particular, front-end
builtin macros are weaker than libcpp builtin macros, and should not be
processed with the libcpp builtin tools.
Index: gcc/testsuite/ChangeLog.pph
2011-06-08 Lawrence Crowl
* g++.dg/pph/c120060625-1.h: Make
ep "^spawn .*$pattern" $logf | sed -e "s:^spawn ::")
line=$(sed -e "/^spawn .*$pattern/ ! d ; s/^spawn //" $logf)
Has one fewer process and one fewer pipe. Sed is your friend.
I think this code fails when multiple lines match the pattern.
Pipe through head?
> +
> +if [ "$line" = "" ] ; then
> +echo "Could not find a spawn command for pattern $1"
> +exit 1
> +fi
> +
> +set -x +e
> +$line $args
> +exit $?
>
> --
> This patch is available for review at http://codereview.appspot.com/4601050
>
--
Lawrence Crowl
Save the DECL_STRUCT_FUNCTION(...) field of FUNCTION_DECL. This change
factors common functionality with the LTO streamer.
Index: gcc/testsuite/ChangeLog.pph
2011-06-14 Lawrence Crowl
* g++.dg/pph/x1tmplfunc.cc: Replace ICE xfail with an assembly diff
xfail.
Index: gcc/cp
y field accesses, which helps avoid
performance problems (unnecessary reloads) and correctness problems
(missing reloads in the presence of aliasing).
--
Lawrence Crowl
ll cause problems when two headers have the same
name. I would rather not get into complicated search rules just yet.
--
Lawrence Crowl
/testsuite/ChangeLog.pph
2011-06-27 Lawrence Crowl
* g++.dg/pph/pph.map: Add missing PPH mappings.
* g++.dg/pph/c1funcstatic.cc: Add expected asm diff.
* g++.dg/pph/c1eabi1.cc: Add xfail-if; remove expected asm diff.
* g++.dg/pph/c2builtin2.cc: Add expected asm diff
.
Index: gcc/testsuite/ChangeLog.pph
2011-06-29 Lawrence Crowl
* lib/dg-pph.exp: Run pph executables when normal executables run.
Change (assembly identical) and (assembly mismatch) to (assembly
comparison) to avoid false "disappeared" test
reports.
missing)"
> @@ -93,7 +96,7 @@ proc dg-pph-pos { subdir test options mapflag suffix } {
> dg-test -keep-output $test "$options $mapflag -I." ""
>
> # Executables do not generate assembly,
> -if { [string compare "dg-do-what" "run"] } {
> +if { $is_exec } {
> # and so we are done testing.
> return
> }
>
> --
> This patch is available for review at http://codereview.appspot.com/4635087
>
--
Lawrence Crowl
uld be very helpful
> at this stage.
That looks easy enough. I need to finish the current test stuff
before I get to that though.
--
Lawrence Crowl
conflict)
The latter test is not an artificial testcase.
Index: gcc/testsuite/ChangeLog.pph
2011-07-01 Lawrence Crowl
* g++.dg/pph/a1dynarray-dcl1.hi: New.
* g++.dg/pph/a1dynarray-dcl2a.hi: New.
* g++.dg/pph/a1dynarray-dcl2b.hi: New.
* g++.dg/pph/a1dynarray-dcl3
^ERROR: / p
/^UNRESOLVED: / p
d
' $*
}
filter gcc/testsuite/g++/g++.sum | sort -u
Index: gcc/testsuite/ChangeLog.pph
2011-07-12 Lawrence Crowl
* lib/dg-pph.exp (dg-pph-pos): Add support for link tests.
(dg-pph-neg): Remove incorrect -fpph-
exec cut -f 1 -d\ << [exec sum << $diff_result]]
> + if { $expectedSum == $actualSum } {
> + xfail "$nshort $options (assembly comparison)"
> + } else {
> + fail "$nshort $options (assembly comparison, sums differ:
> expected
> $expectedSum, actual $actualSum)"
> + }
> } else {
> fail "$nshort $options (assembly comparison)"
> }
> +} else {
> + fail "$nshort $options comparison failure"
> }
> }
>
> --
> This patch is available for review at http://codereview.appspot.com/4744043
>
Needs shortening of message. Otherwise, LGTM.
--
Lawrence Crowl
On 7/15/11, Lawrence Crowl wrote:
> On 7/15/11, Gabriel Charette wrote:
>> This patch adds an expected checksum for the tests expecting an asm diff.
>>
>> This way if we were expecting an asm diff, still get one, but a different
>> one, we know (before this patch we wo
xfail "$nshort $options (assembly comparison)"
> } else {
> - fail "$nshort $options (assembly comparison, sums
> $expectedSum=>$actualSum)"
> + set sumMessage "sums $expectedSum=>$actualSum"
> + fail "$nshort $options (assembly comparison, $sumMessage)"
> }
> } else {
> fail "$nshort $options (assembly comparison, sum=$actualSum)"
>
> --
> This patch is available for review at http://codereview.appspot.com/4800046
>
LGTM
--
Lawrence Crowl
lto_input_location extern in
lto-streamer* and factored cp_debug_parser_tokens out of cp_debug_parser in
cp/parser.c.
Tested on x64.
Index: gcc/testsuite/ChangeLog.pph
2011-07-25 Lawrence Crowl
* g++.dg/pph/x1tmplclass.cc: Remove expected failure.
Index: gcc/cp/ChangeLog.pph
2011-07-25
out, from what I see, it doesn't look like it (as long as the
> source_location you get back from pph_in_location are correct).
No particular dependences. The templates needed locations but
weren't in trees. They aren't doing anything special with them
that I saw.
>> +extern void lto_output_location (struct output_block *ob, location_t loc);
>
> lto_input/ouput will again no longer need to be extern when I make
> my patch for pph to handle those differently, I will make sure
> (remind me if I don't) to remove this change.
Okay.
--
Lawrence Crowl
Place the tinst_level list in forward order.
Tested on x64.
Index: gcc/cp/ChangeLog.pph
2011-07-28 Lawrence Crowl
* pt.c (pph_in_tinst_level): Put tinst_level list in forward order.
Index: gcc/cp/pt.c
===
--- gcc/cp
);
> }
> @@ -352,7 +353,8 @@ pph_in_bytes (pph_stream *stream, void *
> static inline const char *
> pph_in_string (pph_stream *stream)
> {
> - const char *s = lto_input_string (stream->data_in, stream->ib);
> + const char *s = lto_input_string (stream->encoder.r.data_in,
> + stream->encoder.r.ib);
>if (flag_pph_tracer >= 4)
> pph_trace_string (stream, s);
>return s;
> @@ -362,7 +364,8 @@ pph_in_string (pph_stream *stream)
> static inline location_t
> pph_in_location (pph_stream *stream)
> {
> - location_t loc = lto_input_location (stream->ib, stream->data_in);
> + location_t loc = lto_input_location (stream->encoder.r.ib,
> +stream->encoder.r.data_in);
>if (flag_pph_tracer >= 4)
> pph_trace_location (stream, loc);
>return loc;
> @@ -372,7 +375,7 @@ pph_in_location (pph_stream *stream)
> static inline tree
> pph_in_tree (pph_stream *stream)
> {
> - tree t = lto_input_tree (stream->ib, stream->data_in);
> + tree t = lto_input_tree (stream->encoder.r.ib,
> stream->encoder.r.data_in);
>if (flag_pph_tracer >= 4)
> pph_trace_tree (stream, t);
>return t;
> @@ -387,7 +390,7 @@ pph_in_tree_array (pph_stream *stream, t
>size_t i;
>for (i = 0; i < c; ++i)
> {
> - tree t = lto_input_tree (stream->ib, stream->data_in);
> + tree t = lto_input_tree (stream->encoder.r.ib,
> stream->encoder.r.data_in);
>if (flag_pph_tracer >= 4)
> pph_trace_tree (stream, t, false); /* FIXME pph: always false? */
>a[i] = t;
> @@ -405,7 +408,7 @@ pph_in_tree_VEC (pph_stream *stream, VEC
>unsigned int c = pph_in_uint (stream);
>for (i = 0; i < c; ++i)
> {
> - tree t = lto_input_tree (stream->ib, stream->data_in);
> + tree t = lto_input_tree (stream->encoder.r.ib,
> stream->encoder.r.data_in);
>if (flag_pph_tracer >= 4)
> pph_trace_tree (stream, t, false); /* FIXME pph: always false? */
>VEC_safe_push (tree, gc, v, t);
> @@ -417,7 +420,7 @@ pph_in_tree_VEC (pph_stream *stream, VEC
> static inline tree
> pph_in_chain (pph_stream *stream)
> {
> - tree t = lto_input_chain (stream->ib, stream->data_in);
> + tree t = lto_input_chain (stream->encoder.r.ib,
> stream->encoder.r.data_in);
>if (flag_pph_tracer >= 2)
> pph_trace_chain (stream, t);
>return t;
> @@ -427,7 +430,7 @@ pph_in_chain (pph_stream *stream)
> static inline struct bitpack_d
> pph_in_bitpack (pph_stream *stream)
> {
> - struct bitpack_d bp = lto_input_bitpack (stream->ib);
> + struct bitpack_d bp = lto_input_bitpack (stream->encoder.r.ib);
>if (flag_pph_tracer >= 4)
> pph_trace_bitpack (stream, &bp);
>return bp;
>
--
Lawrence Crowl
oot: svn+ssh://gcc.gnu.org/svn/gcc
> Repository UUID: 138bc75d-0d04-0410-961f-82ee72b054a4
> Revision: 176906
> Node Kind: directory
> Schedule: normal
> Last Changed Author: crowl
> Last Changed Rev: 176906
> Last Changed Date: 2011-07-28 16:18:55 -0700 (Thu, 28 Jul 2011)
>
> I did
Add a test to ensure that PPH files are #included at global scope.
Initially, this test is XFAIL, as it's a low priority error.
Index: gcc/testsuite/ChangeLog.pph
2011-04-12 Lawrence Crowl
* g++.dg/pph/y2smother.cc: New.
Index: gcc/testsuite/g++.dg/pph/y2smoth
unsigned int write_p : 1;
> } pph_stream;
>
> +/* Filter values for pph_output_chain_filtered. */
> +enum chain_filter { NONE, NO_BUILTINS };
> +
> /* In pph-streamer.c. */
> pph_stream *pph_stream_open (const char *, const char *);
> void pph_stream_close (pph_stream *);
> @@ -104,6 +107,7 @@ void pph_stream_init_write (pph_stream *);
> void pph_stream_write_tree (struct output_block *, tree, bool ref_p);
> void pph_stream_pack_value_fields (struct bitpack_d *, tree);
> void pph_stream_output_tree_header (struct output_block *, tree);
> +void pph_output_chain_filtered (pph_stream *, tree, bool, enum
> chain_filter);
>
> /* In pph-streamer-in.c. */
> void pph_stream_init_read (pph_stream *);
>
> --
> This patch is available for review at http://codereview.appspot.com/4389050
>
--
Lawrence Crowl
+ /* Read global_namespace from STREAM and add all the names defined
> + there to the current global_namespace. */
> + file_ns = pph_input_tree (stream);
> + pph_add_names_to_namespace (global_namespace, file_ns);
> }
>
>
> -/* Read PPH file. */
> +/* Read PPH file FILENAME. */
>
> static void
> pph_read_file (const char *filename)
>
> --
> This patch is available for review at http://codereview.appspot.com/4392047
>
--
Lawrence Crowl
b 100644
> --- a/libcpp/include/cpplib.h
> +++ b/libcpp/include/cpplib.h
> @@ -480,7 +480,9 @@ struct cpp_callbacks
>void (*file_change) (cpp_reader *, const struct line_map *);
>
>void (*dir_change) (cpp_reader *, const char *);
> - void (*include) (cpp_reader *, unsigned int, const unsigned char *,
> + /* Called when processing a #include directive. If the handler
> + returns false, the file will not be read. */
> + bool (*include) (cpp_reader *, unsigned int, const unsigned char *,
> const char *, int, const cpp_token **);
>void (*define) (cpp_reader *, unsigned int, cpp_hashnode *);
>void (*undef) (cpp_reader *, unsigned int, cpp_hashnode *);
>
> --
> This patch is available for review at http://codereview.appspot.com/4388057
>
--
Lawrence Crowl
On 4/13/11, Richard Guenther wrote:
> On Apr 12, 2011 Diego Novillo wrote:
> > On Apr 12, 2011 Lawrence Crowl wrote:
> > > This patch provides more finer, more precise compile time
> > > information. I sent an advisory mail some time ago, and it
> > > was
because
these bits go into an alignment gap.
Index: libcpp/ChangeLog.pph
2011-04-14 Lawrence Crowl
* include/cpplib.h (cpp_hashnode): Use a macro for the number of bits
in the directive_index bitfield. Change the number of bits back to 7.
* directives.c (DIRECTIVE_TABLE
This patch cleans up positive tests. First, stop on first failure so
as to avoid littering the logfile. Second, change the extensions of
the generated assembly files to .s-pph and .s+pph to be clear on the
provenence of each file.
Index: gcc/testsuite/ChangeLog.pph
2011-04-15 Lawrence Crowl
On 4/16/11, Diego Novillo wrote:
> On Apr 14, 2011 Lawrence Crowl wrote:
> > Unfortunately, five bits are not sufficient for the alternate
> > use of cpp_hashnode.directive_index as a named operator index.
> > So, I have reverted the number of bits from five back to seven
First stab at getting namespaces working with PPH. This change will
put top-level namespaces into the global namespace. It does not,
however, appear to their members in any place useful.
Some tuning of tracing output.
Index: gcc/cp/ChangeLog.pph
2011-04-18 Lawrence Crowl
* pph.c
m->ib, stream->data_in);
> if (flag_pph_tracer >= 4)
> -pph_stream_trace_tree (stream, t);
> +pph_stream_trace_tree (stream, t, false); /* FIXME pph: always
> false?
>
> Yes, on input we can't tell if we read a reference or a real tree. We
> could, but not at this level. That's inside the actual LTO streaming
> code.
It would be nice to have an indication, but it is not something I want
to do now.
>
> http://codereview.appspot.com/4433054/
--
Lawrence Crowl
On 4/20/11, Jason Merrill wrote:
> On 04/12/2011 11:49 AM, Lawrence Crowl wrote:
>> This patch is available for review at
>> http://codereview.appspot.com/4378056
>> + timevar_start (TV_RESOLVE_OVERLOAD);
>
> Putting this in perform_overload_resolution isn't eno
On 4/21/11, Jason Merrill wrote:
> On 04/21/2011 07:17 PM, Lawrence Crowl wrote:
>>>> @@ -1911,7 +1911,7 @@ ggc_collect (void)
>>>> - timevar_push (TV_GC);
>>>> + timevar_start (TV_GC);
>>>
>>> Why this change? GC time shouldn't b
On 4/22/11, Hans-Peter Nilsson wrote:
> On Sat, 16 Apr 2011, Diego Novillo wrote:
>> On Thu, Apr 14, 2011 at 22:01, Lawrence Crowl wrote:
>> > +unsigned char too_many_directives_for_bitfield[
>> > +N_DIRECTIVES <= (1 << CPP_HASHNODE_INDEX_BITS)
>>
the time of cleanup. There are subsequent segfaults still.
Fix formatting of a conditional in pph-streamer.c.
In libcpp/directives.c, make the too_many_directives_for_bitfield
static assert into an extern to avoid allocating storage.
Index: gcc/c-family/ChangeLog.pph
2011-04-20 Lawrence Crowl
This discussion continues in the thread
"[patch] Split Parse Timevar (rev 2) (issue4433076)"
which has a new uploaded patch.
On 4/23/11, Jason Merrill wrote:
> On 04/22/2011 06:41 PM, Lawrence Crowl wrote:
>> On 4/21/11, Jason Merrill wrote:
>>> On 04/21/2011 07
rather than 1+2i, as it would be if it were an aggregate".
This looks right to me. It's more in line with C99.
--
Lawrence Crowl
This patch saves and restores the PARM_DECL DECL_ARG_TYPE in the PPH file.
Index: gcc/cp/ChangeLog.pph
2011-04-28 Lawrence Crowl
* pph-streamer-out.c (pph_stream_write_tree): Write PARM_DECL
DECL_ARG_TYPE.
* pph-streamer-in.c (pph_stream_read_tree): Read PARM_DECL
Copy the pph map file from the source area to the run area to avoid
absolute paths to the map file. These were causing tests to not match
up in the test comparison scripts.
Index: gcc/testsuite/ChangeLog.pph
2011-04-29 Lawrence Crowl
* g++.dg/pph/pph.exp: Copy pph map file to avoid
In the pph file, save and restore DECL_INITIAL instead of just
PARM_DECL DECL_ARG_TYPE.
Index: gcc/cp/ChangeLog.pph
2011-04-29 Lawrence Crowl
* pph-streamer-out.c (pph_stream_write_tree): Write DECL_INITIAL
instead of PARM_DECL DECL_ARG_TYPE.
* pph-streamer-in.c
On 4/29/11, Diego Novillo wrote:
> On Apr 29, 2011 Richard Guenther wrote:
> > On Apr 29, 2011 Lawrence Crowl wrote:
> > > This patch saves and restores the PARM_DECL DECL_ARG_TYPE in the
> > > PPH file.
> >
> > Should be already streamed via lto_output_ts
Save and restored globals keyed_classes and unemitted_tinfo_decls.
Save and restore member TYPE_BINFO.
Index: gcc/cp/ChangeLog.pph
2011-05-05 Lawrence Crowl
* pph.c (pph_write_file_contents): Save keyed_classes and
unemitted_tinfo_decls.
(pph_read_file_contents
merge. I can get away with the overwrite
only with the single-leading pph file. When we do more than one
PPH file, I will need something like these routines back, so these
have been archived for future code.
> http://codereview.appspot.com/4486042/
--
Lawrence Crowl
k.
Looks good to me.
--
Lawrence Crowl
201 - 300 of 306 matches
Mail list logo