public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
[not found] <bug-45307-4@http.gcc.gnu.org/bugzilla/>
@ 2011-06-13 18:37 ` meissner at gcc dot gnu.org
2011-06-13 18:38 ` meissner at gcc dot gnu.org
2014-09-26 16:34 ` hubicka at gcc dot gnu.org
2 siblings, 0 replies; 18+ messages in thread
From: meissner at gcc dot gnu.org @ 2011-06-13 18:37 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
Michael Meissner <meissner at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |meissner at gcc dot gnu.org
Severity|normal |blocker
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
[not found] <bug-45307-4@http.gcc.gnu.org/bugzilla/>
2011-06-13 18:37 ` [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated meissner at gcc dot gnu.org
@ 2011-06-13 18:38 ` meissner at gcc dot gnu.org
2014-09-26 16:34 ` hubicka at gcc dot gnu.org
2 siblings, 0 replies; 18+ messages in thread
From: meissner at gcc dot gnu.org @ 2011-06-13 18:38 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
Michael Meissner <meissner at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|blocker |normal
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
[not found] <bug-45307-4@http.gcc.gnu.org/bugzilla/>
2011-06-13 18:37 ` [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated meissner at gcc dot gnu.org
2011-06-13 18:38 ` meissner at gcc dot gnu.org
@ 2014-09-26 16:34 ` hubicka at gcc dot gnu.org
2 siblings, 0 replies; 18+ messages in thread
From: hubicka at gcc dot gnu.org @ 2014-09-26 16:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
Jan Hubicka <hubicka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #17 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
2010-08-17 12:37 [Bug middle-end/45307] New: " hubicka at gcc dot gnu dot org
` (13 preceding siblings ...)
2010-08-21 9:46 ` hubicka at gcc dot gnu dot org
@ 2010-08-21 9:48 ` hubicka at gcc dot gnu dot org
14 siblings, 0 replies; 18+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2010-08-21 9:48 UTC (permalink / raw)
To: gcc-bugs
------- Comment #16 from hubicka at gcc dot gnu dot org 2010-08-21 09:48 -------
Empty constructors are now optimized away. We still should get removal of
write only global vars.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
2010-08-17 12:37 [Bug middle-end/45307] New: " hubicka at gcc dot gnu dot org
` (12 preceding siblings ...)
2010-08-20 10:23 ` hubicka at gcc dot gnu dot org
@ 2010-08-21 9:46 ` hubicka at gcc dot gnu dot org
2010-08-21 9:48 ` hubicka at gcc dot gnu dot org
14 siblings, 0 replies; 18+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2010-08-21 9:46 UTC (permalink / raw)
To: gcc-bugs
------- Comment #15 from hubicka at gcc dot gnu dot org 2010-08-21 09:46 -------
Subject: Bug 45307
Author: hubicka
Date: Sat Aug 21 09:46:15 2010
New Revision: 163439
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=163439
Log:
PR c++/45307
PR c++/17736
* cgraph.h (cgraph_only_called_directly_p,
cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
static cdtors.
* cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
are not needed.
(cgraph_finalize_function): Static cdtors are reachable.
(cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
* gcc.dg/ipa/ctor-empty-1.c: Add testcase.
* g++.dg/tree-ssa/empty-2.C: Check that constructor got optimized out.
Added:
trunk/gcc/testsuite/gcc.dg/ipa/ctor-empty-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cgraph.c
trunk/gcc/cgraph.h
trunk/gcc/cgraphunit.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/tree-ssa/empty-2.C
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
2010-08-17 12:37 [Bug middle-end/45307] New: " hubicka at gcc dot gnu dot org
` (11 preceding siblings ...)
2010-08-19 17:01 ` jason at gcc dot gnu dot org
@ 2010-08-20 10:23 ` hubicka at gcc dot gnu dot org
2010-08-21 9:46 ` hubicka at gcc dot gnu dot org
2010-08-21 9:48 ` hubicka at gcc dot gnu dot org
14 siblings, 0 replies; 18+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2010-08-20 10:23 UTC (permalink / raw)
To: gcc-bugs
------- Comment #14 from hubicka at gcc dot gnu dot org 2010-08-20 10:23 -------
http://gcc.gnu.org/ml/gcc-patches/2010-08/msg01544.html
has patch for empty constructor removal in middle end.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
2010-08-17 12:37 [Bug middle-end/45307] New: " hubicka at gcc dot gnu dot org
` (10 preceding siblings ...)
2010-08-17 18:18 ` jason at gcc dot gnu dot org
@ 2010-08-19 17:01 ` jason at gcc dot gnu dot org
2010-08-20 10:23 ` hubicka at gcc dot gnu dot org
` (2 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: jason at gcc dot gnu dot org @ 2010-08-19 17:01 UTC (permalink / raw)
To: gcc-bugs
------- Comment #13 from jason at gcc dot gnu dot org 2010-08-19 17:01 -------
Subject: Bug 45307
Author: jason
Date: Thu Aug 19 17:00:51 2010
New Revision: 163380
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=163380
Log:
PR c++/45307
* gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
if ctor is empty.
(gimplify_modify_expr_rhs): Adjust.
Added:
trunk/gcc/testsuite/g++.dg/tree-ssa/empty-2.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-gimplify.c
trunk/gcc/gimplify.c
trunk/gcc/testsuite/ChangeLog
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
2010-08-17 12:37 [Bug middle-end/45307] New: " hubicka at gcc dot gnu dot org
` (9 preceding siblings ...)
2010-08-17 18:09 ` jason at gcc dot gnu dot org
@ 2010-08-17 18:18 ` jason at gcc dot gnu dot org
2010-08-19 17:01 ` jason at gcc dot gnu dot org
` (3 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: jason at gcc dot gnu dot org @ 2010-08-17 18:18 UTC (permalink / raw)
To: gcc-bugs
------- Comment #12 from jason at gcc dot gnu dot org 2010-08-17 18:18 -------
Actually, Richard's change didn't affect this; we were already missing it
because of the complex interoperation of cp_gimplify_expr and
gimplify_modify_expr_rhs.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
2010-08-17 12:37 [Bug middle-end/45307] New: " hubicka at gcc dot gnu dot org
` (8 preceding siblings ...)
2010-08-17 17:51 ` mmitchel at gcc dot gnu dot org
@ 2010-08-17 18:09 ` jason at gcc dot gnu dot org
2010-08-17 18:18 ` jason at gcc dot gnu dot org
` (4 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: jason at gcc dot gnu dot org @ 2010-08-17 18:09 UTC (permalink / raw)
To: gcc-bugs
------- Comment #11 from jason at gcc dot gnu dot org 2010-08-17 18:09 -------
There are two issues here:
1) expand_static_init decides whether a variable needs static initialization
before gimplification, and
2) Richard's MEM_REF-related change to cp_gimplify_expr caused us to stop
removing the copy in this example.
It sounds like if we fix #2 then the patch Honza mentions having should do the
trick. I'll do that.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
2010-08-17 12:37 [Bug middle-end/45307] New: " hubicka at gcc dot gnu dot org
` (7 preceding siblings ...)
2010-08-17 17:41 ` jason at gcc dot gnu dot org
@ 2010-08-17 17:51 ` mmitchel at gcc dot gnu dot org
2010-08-17 18:09 ` jason at gcc dot gnu dot org
` (5 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2010-08-17 17:51 UTC (permalink / raw)
To: gcc-bugs
------- Comment #10 from mmitchel at gcc dot gnu dot org 2010-08-17 17:50 -------
The problem with -Wuninitialized might be the same problem I've been
sermonizing about for years -- we're trying to issue sensible warnings from our
optimizers, which means that as the optimizers are perturbed, the set of
warnings will change in various ways. But, there's no reason for
-Wuninitialized to warn about a use of an empty structure, so I don't see why
removing the stores is unreasonable.
I certainly think that the front-end could safely optimize away such stores,
and that it would be reasonably easy to do so in the trivial cases.
(Obviously, the optimizers would be responsible for more complex cases where
things are not perhaps immediately obvious to the front-end.) I don't think
there's any reason we don't do that in the front-end; it's just something we
haven't done.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
2010-08-17 12:37 [Bug middle-end/45307] New: " hubicka at gcc dot gnu dot org
` (6 preceding siblings ...)
2010-08-17 16:54 ` jakub at gcc dot gnu dot org
@ 2010-08-17 17:41 ` jason at gcc dot gnu dot org
2010-08-17 17:51 ` mmitchel at gcc dot gnu dot org
` (6 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: jason at gcc dot gnu dot org @ 2010-08-17 17:41 UTC (permalink / raw)
To: gcc-bugs
------- Comment #9 from jason at gcc dot gnu dot org 2010-08-17 17:41 -------
But that change was largely reversed by the fix for PR 43787.
--
jason at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC|jason at redhat dot com |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
2010-08-17 12:37 [Bug middle-end/45307] New: " hubicka at gcc dot gnu dot org
` (5 preceding siblings ...)
2010-08-17 16:46 ` hubicka at gcc dot gnu dot org
@ 2010-08-17 16:54 ` jakub at gcc dot gnu dot org
2010-08-17 17:41 ` jason at gcc dot gnu dot org
` (7 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: jakub at gcc dot gnu dot org @ 2010-08-17 16:54 UTC (permalink / raw)
To: gcc-bugs
------- Comment #8 from jakub at gcc dot gnu dot org 2010-08-17 16:53 -------
Perhaps related to PR43075, before that last commit there genericization was
removing empty struct assignments.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
2010-08-17 12:37 [Bug middle-end/45307] New: " hubicka at gcc dot gnu dot org
` (4 preceding siblings ...)
2010-08-17 16:43 ` hubicka at gcc dot gnu dot org
@ 2010-08-17 16:46 ` hubicka at gcc dot gnu dot org
2010-08-17 16:54 ` jakub at gcc dot gnu dot org
` (8 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2010-08-17 16:46 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from hubicka at gcc dot gnu dot org 2010-08-17 16:45 -------
oops, I've left IRC sentence unfinished. At IRC Richi told that FEs should not
ever produce stores to empty structs at first place, so we don't need middle
end logic of taking them away. Jakub thought that those stores are left to
keep -Wuninitialized safe.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
2010-08-17 12:37 [Bug middle-end/45307] New: " hubicka at gcc dot gnu dot org
` (3 preceding siblings ...)
2010-08-17 15:58 ` rguenth at gcc dot gnu dot org
@ 2010-08-17 16:43 ` hubicka at gcc dot gnu dot org
2010-08-17 16:46 ` hubicka at gcc dot gnu dot org
` (9 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2010-08-17 16:43 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from hubicka at gcc dot gnu dot org 2010-08-17 16:42 -------
We are not removing write only vars because richi told me that there is no
convenient way to tell aliasing that variable is write only. It is easy to
detect for me, but bit harder to get rid of them, since at IPA pass I can't
modify body so I need to pass it down to local optimization and remove only
then.
I guess I will add the feature (detecting them and removing the statements in
transform pass). It just seemed not worth the hassle when I was looking into it
originally.
Concerning Mark's question, we briefly discussed this on IRC
So we now have
1) C++ frontend probably should not produce static constructor for empty struct
at all
2) We should be able to get rid of writes to empty structs in backend
3) Middle end should take away pure constructors
4) We should be able to optimize away write only variables
I will work on 3) and probably 4) later.
Mark, why C++ is not doing 1)?
--
hubicka at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|enhancement |normal
Keywords|missed-optimization |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
2010-08-17 12:37 [Bug middle-end/45307] New: " hubicka at gcc dot gnu dot org
` (2 preceding siblings ...)
2010-08-17 14:42 ` mmitchel at gcc dot gnu dot org
@ 2010-08-17 15:58 ` rguenth at gcc dot gnu dot org
2010-08-17 16:43 ` hubicka at gcc dot gnu dot org
` (10 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-08-17 15:58 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from rguenth at gcc dot gnu dot org 2010-08-17 15:57 -------
I also wonder why we can't remove such stores based on ipa-reference analysis.
Reduced testcase:
struct __attribute__ ((visibility ("default"))) fallible_t { };
const fallible_t fallible = fallible_t();
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC|rguenther at suse dot de |rguenth at gcc dot gnu dot
| |org
Severity|normal |enhancement
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Keywords| |missed-optimization
Last reconfirmed|0000-00-00 00:00:00 |2010-08-17 15:57:59
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
2010-08-17 12:37 [Bug middle-end/45307] New: " hubicka at gcc dot gnu dot org
2010-08-17 12:38 ` [Bug middle-end/45307] " hubicka at gcc dot gnu dot org
2010-08-17 13:34 ` hubicka at gcc dot gnu dot org
@ 2010-08-17 14:42 ` mmitchel at gcc dot gnu dot org
2010-08-17 15:58 ` rguenth at gcc dot gnu dot org
` (11 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2010-08-17 14:42 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from mmitchel at gcc dot gnu dot org 2010-08-17 14:41 -------
I have no object to the FE removing trivial code if it can do so -- but I also
think that the middle-end should be able to deduce that a function is pure
later in the process and eliminate it then.
I don't understand Richard's comment about -Wuninitialized; I don't see any
comments from Jakub in this PR.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
2010-08-17 12:37 [Bug middle-end/45307] New: " hubicka at gcc dot gnu dot org
2010-08-17 12:38 ` [Bug middle-end/45307] " hubicka at gcc dot gnu dot org
@ 2010-08-17 13:34 ` hubicka at gcc dot gnu dot org
2010-08-17 14:42 ` mmitchel at gcc dot gnu dot org
` (12 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2010-08-17 13:34 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from hubicka at gcc dot gnu dot org 2010-08-17 13:34 -------
Adding Mark and Jason to CC then, but Jakub seems right about -Wuninitialized
warnings.
--
hubicka at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jason at redhat dot com,
| |mark at codesourcery dot com
Component|c++ |middle-end
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated
2010-08-17 12:37 [Bug middle-end/45307] New: " hubicka at gcc dot gnu dot org
@ 2010-08-17 12:38 ` hubicka at gcc dot gnu dot org
2010-08-17 13:34 ` hubicka at gcc dot gnu dot org
` (13 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2010-08-17 12:38 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from hubicka at gcc dot gnu dot org 2010-08-17 12:38 -------
Created an attachment (id=21503)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21503&action=view)
testcase.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45307
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2014-09-26 16:34 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <bug-45307-4@http.gcc.gnu.org/bugzilla/>
2011-06-13 18:37 ` [Bug middle-end/45307] Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated meissner at gcc dot gnu.org
2011-06-13 18:38 ` meissner at gcc dot gnu.org
2014-09-26 16:34 ` hubicka at gcc dot gnu.org
2010-08-17 12:37 [Bug middle-end/45307] New: " hubicka at gcc dot gnu dot org
2010-08-17 12:38 ` [Bug middle-end/45307] " hubicka at gcc dot gnu dot org
2010-08-17 13:34 ` hubicka at gcc dot gnu dot org
2010-08-17 14:42 ` mmitchel at gcc dot gnu dot org
2010-08-17 15:58 ` rguenth at gcc dot gnu dot org
2010-08-17 16:43 ` hubicka at gcc dot gnu dot org
2010-08-17 16:46 ` hubicka at gcc dot gnu dot org
2010-08-17 16:54 ` jakub at gcc dot gnu dot org
2010-08-17 17:41 ` jason at gcc dot gnu dot org
2010-08-17 17:51 ` mmitchel at gcc dot gnu dot org
2010-08-17 18:09 ` jason at gcc dot gnu dot org
2010-08-17 18:18 ` jason at gcc dot gnu dot org
2010-08-19 17:01 ` jason at gcc dot gnu dot org
2010-08-20 10:23 ` hubicka at gcc dot gnu dot org
2010-08-21 9:46 ` hubicka at gcc dot gnu dot org
2010-08-21 9:48 ` hubicka at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).