On Sat, Aug 10, 2013 at 02:25:21AM +0200, Andi Kleen wrote:
> On Sat, Aug 10, 2013 at 01:15:11AM +0200, Jan Hubicka wrote:
> > > Jan Hubicka writes:
> > >
> > > > Hi,
> > > > this patch adds support for speculative calls into callgraph. The idea
> > > > is that
> > > > any IPA optimization that
I'm working at Red Hat now as the glibc team lead within the tools group.
Please feel free to reach out to me if you have any glibc related questions.
Still having fun working on GNU tools :-)
Committed.
2013-08-09 Carlos O'Donell
* MAINTAINERS (Write After Approval): Update email.
On Sat, Aug 10, 2013 at 01:15:11AM +0200, Jan Hubicka wrote:
> > Jan Hubicka writes:
> >
> > > Hi,
> > > this patch adds support for speculative calls into callgraph. The idea
> > > is that
> > > any IPA optimization that believes it knows likely target of an indirect
> > > call
> > > (current
On Aug 9, 2013, at 3:36 PM, Diego Novillo wrote:
> This patch is still WIP. It builds stage1, but I'm getting ICEs
> during stage 2.
>
> The patch splits tree.h into three files:
>
> - tree-core.h: All data structures, enums and typedefs from
> tree.h
>
> - tree-api.h: All extern function def
On Sun, 28 Jul 2013, Alexander Ivchenko wrote:
> Hi Joseph, thanks for your comments.
>
> I updated the patch:
>
> 1) The function name as a second argument in libc_has_function target
> hook was removed - was not usefull so far.
> 2) By using contrib/config-list.mk (thanks for the hint - great
On Fri, Aug 9, 2013 at 4:21 PM, Jan Hubicka wrote:
>> On Fri, Aug 9, 2013 at 1:24 PM, Jan Hubicka wrote:
>> >> I have not looked at the details. One high level question: this form
>> >> seems to only support one indirect target case. LIPO uses TOPN
>> >> indirect target profiling (tracking multip
On Mon, 29 Jul 2013, Ilya Enkovich wrote:
> Hi,
>
> Here is updated version of the patch. I removed redundant
> mode_for_bound, added comments to BOUND_TYPE and added -mmpx option.
> I also fixed bndmk/bndldx/bndstx constraints to avoid incorrect
> register allocation (created two new constraints
> On Fri, Aug 9, 2013 at 1:24 PM, Jan Hubicka wrote:
> >> I have not looked at the details. One high level question: this form
> >> seems to only support one indirect target case. LIPO uses TOPN
> >> indirect target profiling (tracking multiple targets), which can be
> >> used by LTO as well (when
> Jan Hubicka writes:
>
> > Hi,
> > this patch adds support for speculative calls into callgraph. The idea is
> > that
> > any IPA optimization that believes it knows likely target of an indirect
> > call
> > (currently I use it for cross-module indirect call profiling, but I expect
> > Martin
>
> I see, yes LTO can deal with this better since it has global
> information. In non-LTO mode (including LIPO) we have the issue.
Thinking about it, there is still one problem left: I usually suggest
users to train with -fno-lto to avoid excessive linking time with
instrumentation. This actual
Hi,
this makes the whole indirect call machinery to fly. The histograms for cross
module indirect calls now collected by value-prof are still at compile time
turned into common targets stored into cgraph edges. (in
ipa_profile_generate_summary)
Common targets can be used not only for speculation
On Fri, Aug 9, 2013 at 1:24 PM, Jan Hubicka wrote:
>> I have not looked at the details. One high level question: this form
>> seems to only support one indirect target case. LIPO uses TOPN
>> indirect target profiling (tracking multiple targets), which can be
>> used by LTO as well (when the topn
Jan Hubicka writes:
> Hi,
> this patch adds support for speculative calls into callgraph. The idea is
> that
> any IPA optimization that believes it knows likely target of an indirect call
> (currently I use it for cross-module indirect call profiling, but I expect
> Martin J. can easily add su
On Fri, Aug 9, 2013 at 8:28 AM, Jan Hubicka wrote:
>> > Do we sanity check that the cold partition does not contain any blocks of
>> > count 0? It may be that the profile is broken enough to make partitioning
>> > not work.
>>
>> Do you mean sanity check that the cold partition does not contain a
On Fri, Aug 9, 2013 at 8:54 AM, Martin Liška wrote:
> Hi
>
> On 9 August 2013 17:28, Jan Hubicka wrote:
>>> > Do we sanity check that the cold partition does not contain any blocks of
>>> > count 0? It may be that the profile is broken enough to make partitioning
>>> > not work.
>>>
>>> Do you m
On Thu, Aug 8, 2013 at 11:22 PM, Jakob Borg wrote:
>
> But, adding a
>
> hints.ai_socktype = SOCK_STREAM;
>
> gives me
>
> jb@zlogin2:~ $ ./test
> canonical name: www.google.com
> 26 2 6
> 26 2 6
> 26 2 6
> 26 2 6
> 26 2 6
> 26 2 6
>
> It seems we might need a tweak to support Solaris... :/
Look
> I have not looked at the details. One high level question: this form
> seems to only support one indirect target case. LIPO uses TOPN
> indirect target profiling (tracking multiple targets), which can be
> used by LTO as well (when the topn profiling gets into trunk).
Well, adding multiple direc
> On Fri, Aug 9, 2013 at 11:33 AM, Jan Hubicka wrote:
> >> Is this version ok for trunk?
> >
> > It looks resonable, but I still do not like much the removal of const for
> > tables.
> > Doing so will push them all into David Malcom's per-thread global universe.
> >
> > Currently the algorithm is
On Fri, Aug 9, 2013 at 11:33 AM, Jan Hubicka wrote:
>> Is this version ok for trunk?
>
> It looks resonable, but I still do not like much the removal of const for
> tables.
> Doing so will push them all into David Malcom's per-thread global universe.
>
> Currently the algorithm is selected based
. patch draft fixes c++/53401 too.
Paolo.
2013/8/9 Mikael Morin :
> Le 06/08/2013 17:12, Janus Weil a écrit :
>> Hi all,
>>
>> attached is a cleanup patch which concerns the gfc_code structure and
>> gfc_get_code function (in st.c). It basically does two things:
>>
>> 1) It replaces the many occurrences of "XCNEW (gfc_code)" in class.c
>>
Marek Polacek wrote:
>In this PR the problem was that when dealing with the gimple assign in
>the tailcall optimization, we, when the rhs operand is of a vector
>type, need to create -1 also of a vector type, but build_int_cst
>doesn't create vectors (ICEs). Instead, we should use
>build_minus_on
> Is this version ok for trunk?
It looks resonable, but I still do not like much the removal of const for
tables.
Doing so will push them all into David Malcom's per-thread global universe.
Currently the algorithm is selected based on cost->memset/cost->memcpy.
Instead of removing the const of a
Is this version ok for trunk?
thanks,
David
On Thu, Aug 8, 2013 at 9:31 AM, Xinliang David Li wrote:
> Updated.
>
> thanks,
>
> David
>
> On Thu, Aug 8, 2013 at 8:18 AM, Joseph S. Myers
> wrote:
>> On Wed, 7 Aug 2013, Xinliang David Li wrote:
>>
>>> Updated patch attached (fixed header, buffe
Le 09/08/2013 19:06, Janus Weil a écrit :
> thanks a lot for the review! I have committed to trunk as r201633.
> Will do 4.8 and 4.7 soon (assuming your OK also applies to those ...)
>
Yes, of course.
Mikael
Le 07/08/2013 16:02, Janus Weil a écrit :
> Hi all,
>
> here is a small regression-fix patch for a problem with procedure
> pointers and the PURE attribute, for details see the PR. In essence:
> gfc_compare_interfaces is asymmetric in the two interfaces it compares
> (e.g. regarding the PURE attri
Le 07/08/2013 16:02, Janus Weil a écrit :
> Hi all,
>
> here is a small regression-fix patch for a problem with procedure
> pointers and the PURE attribute, for details see the PR. In essence:
> gfc_compare_interfaces is asymmetric in the two interfaces it compares
> (e.g. regarding the PURE attri
On Wed, Jul 24, 2013 at 9:53 AM, Alexander Monakov wrote:
>
> 2013-07-24 Alexander Monakov
>
> * doc/invoke.texi: Mention that -ftls-model does not force the final
> model.
This is OK.
Thanks.
Ian
On 03/08/13 19:01, Venkataramanan Kumar wrote:
2013-08-02 Venkataramanan Kumar
* config/aarch64/aarch64.h (MCOUNT_NAME): Define.
(NO_PROFILE_COUNTERS): Likewise.
(PROFILE_HOOK): Likewise.
(FUNCTION_PROFILER): Likewise.
* config/aarch64
Hi Mikael,
>>> the attached patch plugs a memory leak of the TRANSFER intrinsic,
>>> which can occur when transferring to CHARACTER strings. For details
>>> see the PR.
>>>
>>> Regtested on x86_64-unknown-linux-gnu. Ok for trunk/4.8/4.7?
>>>
> Looks good, yes.
> Thanks.
thanks a lot for the revie
Ping. I've tried to phrase the additional doc text as concisely as possible.
Would a runtime warning be more appropriate?
Thanks.
On Wed, 24 Jul 2013, Alexander Monakov wrote:
> Hello,
>
> As discussed here, the current behavior of -ftls-model is intended:
> http://gcc.gnu.org/ml/gcc/2013-07/
Hi,
this patch makes indirect call profiling to work cross module. Unlike LIPO I
am not adding module IDs, since I do not know how to make them stable across
multiple uses of same .o files. Instead I simply assign unique ID to each
possibly indirectly called function in program. This is done by
On Thu, 8 Aug 2013, Iyer, Balaji V wrote:
> +enum add_variable_type {
Two spaces before '{', should be one.
> +static HOST_WIDE_INT cilk_wrapper_count;
This is HOST_WIDE_INT but you use it later with sprintf with %ld; you need
to use HOST_WIDE_INT_PRINT_DEC in such a case
> + tree map = (tr
Hi,
for reference I decided to start a new thread with a preliminary
implementation of this idea:
http://gcc.gnu.org/ml/gcc-patches/2013-08/msg00519.html
I know Gaby doesn't like it much, would like to see something more
ambitious in this area.
IMHO, within its limits, the idea works a
Hi Eric,
Thank you very much for your work. I will test it ASAP
WeiY
Best Regards
在 2013-8-9,下午5:06,Eric Botcazou 写道:
> This enables access to the atomic compare-and-swap on LEON3 in conjunction
> with
> the binutils patch at:
> http://sourceware.org/ml/binutils/2013-08/msg00038.html
>
> Te
Hi
On 9 August 2013 17:28, Jan Hubicka wrote:
>> > Do we sanity check that the cold partition does not contain any blocks of
>> > count 0? It may be that the profile is broken enough to make partitioning
>> > not work.
>>
>> Do you mean sanity check that the cold partition does not contain any
>
Hi,
On 08/09/2013 05:22 PM, David Edelsohn wrote:
Exactly. What is the common factor on AIX, Darwin and Solaris that is
different from Linux? A difference in system types? How can we help?
Thanks David, all, for your kind offers.
As I said the issue is weird, I think the only way in practice
Le 08/08/2013 16:54, Janus Weil a écrit :
> ping!
>
> 2013/8/3 Janus Weil :
>> Hi all,
>>
>> the attached patch plugs a memory leak of the TRANSFER intrinsic,
>> which can occur when transferring to CHARACTER strings. For details
>> see the PR.
>>
>> Regtested on x86_64-unknown-linux-gnu. Ok for t
Le 06/08/2013 17:12, Janus Weil a écrit :
> Hi all,
>
> attached is a cleanup patch which concerns the gfc_code structure and
> gfc_get_code function (in st.c). It basically does two things:
>
> 1) It replaces the many occurrences of "XCNEW (gfc_code)" in class.c
> by "gfc_get_code ()", which int
> > Do we sanity check that the cold partition does not contain any blocks of
> > count 0? It may be that the profile is broken enough to make partitioning
> > not work.
>
> Do you mean sanity check that the cold partition does not contain any
> blocks of count > 0? (they should all be zero) I do
On Fri, Aug 9, 2013 at 7:35 AM, Iain Sandoe wrote:
>
> On 9 Aug 2013, at 12:12, Paolo Carlini wrote:
>
>> On 08/09/2013 12:52 PM, domi...@lps.ens.fr wrote:
>>> On x86_64-apple-darwin10, g++.dg/lookup/typedef2.C fails with
>>>
>>> FAIL: g++.dg/lookup/typedef2.C -std=c++11 (test for excess errors)
>
On Fri, Aug 9, 2013 at 2:58 AM, Jan Hubicka wrote:
>> On Thu, Aug 8, 2013 at 3:23 PM, Jan Hubicka wrote:
>> > Hi,
>> > Martin Liska was kind enough to generate disk seeking graph of gimp
>> > statrup with his function reordering.
>> > His code simply measures time of firest execution of a functi
> -Original Message-
> From: Rainer Orth [mailto:r...@cebitec.uni-bielefeld.de]
> Sent: Friday, August 09, 2013 7:54 AM
> To: Iyer, Balaji V
> Cc: Jakub Jelinek; gcc-patches@gcc.gnu.org; Marek Polacek
> (pola...@redhat.com)
> Subject: Re: [PATCH] Fix for PR c/57490
>
> Rainer Orth write
In this PR the problem was that when dealing with the gimple assign in
the tailcall optimization, we, when the rhs operand is of a vector
type, need to create -1 also of a vector type, but build_int_cst
doesn't create vectors (ICEs). Instead, we should use build_minus_one_cst
because that can crea
On 8/9/13 1:29 AM, Mike Stump wrote:
> In the below, the test case tries to write to the stack outside the bounds of
> the s variable? I can't imagine any good coming from this, and indeed, would
> be nice for the compiler to complain about such code. If S had a few more
> bytes at the end, at
2013/8/8 Joseph S. Myers :
> On Thu, 8 Aug 2013, Ilya Enkovich wrote:
>
>> > That is not a big issue to rename generic names. But I'm just still
>> > trying to choose proper names. I looked into -fbounds-check but its
>> > description already mention C/C++ and its semantics differs from what
>> > n
Hi,
this patch adds support for speculative calls into callgraph. The idea is that
any IPA optimization that believes it knows likely target of an indirect call
(currently I use it for cross-module indirect call profiling, but I expect
Martin J. can easily add support for ipa-cp and I hope to add
.. reverted.
Paolo.
Rainer Orth writes:
> Rainer Orth writes:
>
>> "Iyer, Balaji V" writes:
>>
-Original Message-
From: Jakub Jelinek [mailto:ja...@redhat.com]
Sent: Monday, July 01, 2013 1:09 PM
To: Iyer, Balaji V
Cc: gcc-patches@gcc.gnu.org; Rainer Orth
Subject: Re: [PATCH]
Iain Sandoe writes:
> On 9 Aug 2013, at 12:12, Paolo Carlini wrote:
>
>> On 08/09/2013 12:52 PM, domi...@lps.ens.fr wrote:
>>> On x86_64-apple-darwin10, g++.dg/lookup/typedef2.C fails with
>>>
>>> FAIL: g++.dg/lookup/typedef2.C -std=c++11 (test for excess errors)
>>> Excess errors:
>>> /opt/gcc/
Tim Shen writes:
> On Fri, Aug 9, 2013 at 2:59 PM, Paolo Carlini
> wrote:
>> Yes, if, as it should, it works on -m32 too, let's go with this. By the way,
>> you didn't say how exactly you are testing?!? Because just make check
>> doesn't test -m32. I use, something like:
>>
>> make -k check-tar
On 9 Aug 2013, at 12:12, Paolo Carlini wrote:
> On 08/09/2013 12:52 PM, domi...@lps.ens.fr wrote:
>> On x86_64-apple-darwin10, g++.dg/lookup/typedef2.C fails with
>>
>> FAIL: g++.dg/lookup/typedef2.C -std=c++11 (test for excess errors)
>> Excess errors:
>> /opt/gcc/work/gcc/testsuite/g++.dg/look
On 08/09/2013 12:52 PM, domi...@lps.ens.fr wrote:
On x86_64-apple-darwin10, g++.dg/lookup/typedef2.C fails with
FAIL: g++.dg/lookup/typedef2.C -std=c++11 (test for excess errors)
Excess errors:
/opt/gcc/work/gcc/testsuite/g++.dg/lookup/typedef2.C:8:12: error: using
typedef-name 'Foo1::Bar' afte
On 08/09/13 11:01, Julian Brown wrote:
On Thu, 8 Aug 2013 15:44:17 +0100
Kyrylo Tkachov wrote:
Hi all,
The recently added gcc.target/arm/pr58041.c test exposed a bug in the
backend. When compiling for NEON and with -mno-unaligned-access we
end up generating the vld1.64 and vst1.64 instruction
This fixes a segfault on specific C++ code using when -fdump-ada-spec
is passed to the compiler.
Tested on x86_64-suse-linux, applied on the mainline and 4.8 branch as obvious.
2013-08-09 Arnaud Charlet
* c-ada-spec.c (print_ada_declaration): Prevent accessing null asm name
--
E
On x86_64-apple-darwin10, g++.dg/lookup/typedef2.C fails with
FAIL: g++.dg/lookup/typedef2.C -std=c++11 (test for excess errors)
Excess errors:
/opt/gcc/work/gcc/testsuite/g++.dg/lookup/typedef2.C:8:12: error: using
typedef-name 'Foo1::Bar' after 'struct'
/opt/gcc/work/gcc/testsuite/g++.dg/lookup
ping!
On 3 August 2013 23:31, Venkataramanan Kumar
wrote:
> Hi Maintainers,
>
> This patch adds macros to support gprof in Aarch64. The difference
> from the previous patch is that the compiler, while generating
> "mcount" routine for an instrumented function, also passes the return
> address as
--- gcc/expr.c
+++ gcc/expr.c
@@ -9569,6 +9569,21 @@ expand_expr_real_1 (tree exp, rtx target, enum
machine_mode tmode,
}
return expand_constructor (exp, target, modifier, false);
+case INDIRECT_REF:
+ {
+ tree exp1 = TREE_OPERAND (exp, 0);
+ if (modifier
On Fri, Aug 9, 2013 at 4:28 AM, Paolo Carlini wrote:
> Hi,
>
>
> On 08/09/2013 10:46 AM, Gabriel Dos Reis wrote:
>>
>> I think we should find ways to have the pretty printer in the diagnostic
>> framework stop trying to redo most of the work done by the type checker. In
>> its current form, that i
Hi Julian,
> > The recently added gcc.target/arm/pr58041.c test exposed a bug in the
> > backend. When compiling for NEON and with -mno-unaligned-access we
> > end up generating the vld1.64 and vst1.64 instructions instead of
> > doing the accesses one byte at a time like -mno-unaligned-access
> >
On Thu, 8 Aug 2013 15:44:17 +0100
Kyrylo Tkachov wrote:
> Hi all,
>
> The recently added gcc.target/arm/pr58041.c test exposed a bug in the
> backend. When compiling for NEON and with -mno-unaligned-access we
> end up generating the vld1.64 and vst1.64 instructions instead of
> doing the accesse
> On Thu, Aug 8, 2013 at 3:23 PM, Jan Hubicka wrote:
> > Hi,
> > Martin Liska was kind enough to generate disk seeking graph of gimp statrup
> > with his function reordering.
> > His code simply measures time of firest execution of a function and orders
> > functions in the given order.
> > The
Hi,
On 08/09/2013 10:46 AM, Gabriel Dos Reis wrote:
I think we should find ways to have the pretty printer in the
diagnostic framework stop trying to redo most of the work done by the
type checker. In its current form, that is fragile. -- Gaby
Yeah. That tsubst (..., tf_none, ...) from dump_te
This enables access to the atomic compare-and-swap on LEON3 in conjunction with
the binutils patch at:
http://sourceware.org/ml/binutils/2013-08/msg00038.html
Tested on SPARC/Solaris and sparc-elf, applied on the mainline.
2013-08-09 Eric Botcazou
* configure.ac: Add GAS check for
On 05/08/13 21:57, James Greenhalgh wrote:
This patch fixes up the vget_lane RTL patterns to better
exploit the behaviour of their target instructions, and
to allow variants keeping the result in the SIMD register file.
---
gcc/
2013-08-05 James Greenhalgh
* config/aarch64/aarc
On Tue, Jul 23, 2013 at 01:55:19AM +, Joseph S. Myers wrote:
> I have now revised this patch from a year ago in line with my
> understanding of how _Generic ought to handle the various special
> cases (selector undergoes lvalue-to-rvalue conversion, and decay of
> functions and arrays to pointe
On Fri, Aug 9, 2013 at 2:13 AM, Paolo Carlini wrote:
> .. another thought I had, less esoteric ;) is the following: we use tf_none
> for two rather different reasons: for SFINAE and to avoid recursive Error
> routines calls, when we call tsubst (... tf_none, ...) from
> dump_template_bindings.
>
>
On Fri, Aug 9, 2013 at 2:33 AM, Florian Weimer wrote:
> On 08/09/2013 09:28 AM, Paolo Carlini wrote:
>
>> I see. You know, I was trying to figure out the logic other compilers -
>> two of them, actually - are following, because the really appear to sfinae
>> away infinite recursions. Was trying to
On Fri, Aug 9, 2013 at 2:13 AM, Florian Weimer wrote:
> On 08/09/2013 08:43 AM, Paolo Carlini wrote:
>
>>> Yes, that is intended. Changing that could mean that the meaning of
>>> code depends on what max depth the user selected.
>>
>>
>> Indeed. Yesterday I wondered what would happen if the front
On Thu, Aug 8, 2013 at 6:40 PM, Jason Merrill wrote:
> On 08/08/2013 03:54 PM, Paolo Carlini wrote:
>>
>> the really interesting one is decltype28.C, which we don't reject
>> anymore, we simply accept it. What is happening is that the overload
>> which leads to excessive template instantiation dep
On 26 July 2013 12:06, Yufeng Zhang wrote:
> Hi,
>
> This patch changes to skip gcc.dg/lower-subreg-1.c for aarch64*-*-*. The
> word mode in aarch64 is 64-bit so the lower-subreg pass won't happen in this
> test case. The test is currently skipped on aarch64 with lp64 due to the
> directive of "d
Hi,
Florian Weimer ha scritto:
>Could their behavior just be bugs? Depending on their error recovery
>implementation, not flagging infinite recursion as a hard error in
>SFINAE context could be an easy mistake to make.
Sure can be. In a sense, as I tried to explain in another sub-thread, we d
On Fri, Aug 9, 2013 at 2:59 PM, Paolo Carlini wrote:
> Yes, if, as it should, it works on -m32 too, let's go with this. By the way,
> you didn't say how exactly you are testing?!? Because just make check
> doesn't test -m32. I use, something like:
>
> make -k check-target-libstdc++-v3
> RUNTESTFLA
On 08/09/2013 09:28 AM, Paolo Carlini wrote:
I see. You know, I was trying to figure out the logic other compilers - two of
them, actually - are following, because the really appear to sfinae away
infinite recursions. Was trying to imagine cases in which it would be safe.
Could their behavio
On 09.08.2013 03:01, Jason Merrill wrote:
On 08/08/2013 06:28 PM, Adam Butcher wrote:
So all seems to be okay with both versions. Any ideas why?
Hmm, it sounds like processing_template_decl is being set after all,
even without your change.
Yup. Although the lambda template code I originally
Hi,
Florian Weimer ha scritto:
>On 08/09/2013 08:43 AM, Paolo Carlini wrote:
>
>>> Yes, that is intended. Changing that could mean that the meaning of
>>> code depends on what max depth the user selected.
>>
>> Indeed. Yesterday I wondered what would happen if the front-end had a
>way to detec
On 08/09/2013 08:43 AM, Paolo Carlini wrote:
Yes, that is intended. Changing that could mean that the meaning of
code depends on what max depth the user selected.
Indeed. Yesterday I wondered what would happen if the front-end had a way to detect, in
some very specific and special cases only
.. another thought I had, less esoteric ;) is the following: we use
tf_none for two rather different reasons: for SFINAE and to avoid
recursive Error routines calls, when we call tsubst (... tf_none, ...)
from dump_template_bindings.
I understand, given your reply, that in general in the first
On 08/09/2013 12:09 AM, Caroline Tice wrote:
+ logs_dir = getenv ("VTV_LOGS_DIR");
This needs to use __secure_getenv or secure_getenv, depending on the
glibc version, so that it doesn't wreak havoc in SUID/SGID binaries (or
after other kinds of privilege transitions).
Relevant autoconf che
Hi,
On 08/09/2013 07:08 AM, Tim Shen wrote:
On Fri, Aug 9, 2013 at 12:51 AM, Tim Shen wrote:
So here's the change. It's under testing now, but could took several
hours. If someone has a faster machine, please tell the result :)
Unfortuantely using `unsigned int => unsigned short` cannot work.
80 matches
Mail list logo