<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Book Antiqua";
        panose-1:2 4 6 2 5 3 5 3 3 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Book Antiqua",serif;
        color:windowtext;
        font-weight:normal;
        font-style:normal;
        text-decoration:none none;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-IE link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>Hi CFE-Devs,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>While debugging a problem in our back-end, I want to temporarily remove JUST ‘</span><span style='font-size:12.0pt;font-family:"Courier New"'>-vectorize</span><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>’ and ‘</span><span style='font-size:12.0pt;font-family:"Courier New"'>-vectorize-slp</span><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>’ from the flags passed with ‘</span><span style='font-size:12.0pt;font-family:"Courier New"'>-cc1</span><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>’, but I want to leave all the other command-line options the same.  But when I use:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'><o:p> </o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>clang -S -O3 -fno-vectorize -fno-slp-vectorize foo.c<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>it is still inserting ‘</span><span style='font-size:12.0pt;font-family:"Courier New"'>-vectorize -vectorize-slp</span><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>’.  The code in ‘</span><span style='font-size:12.0pt;font-family:"Courier New"'>Clang.cpp</span><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>’ for this is at line #4858 (on the v6.0 branch):<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'><o:p> </o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>  // Enable vectorization per default according to the optimization level<o:p></o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>  // selected. For optimization levels that want vectorization we use the alias<o:p></o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>  // option to simplify the hasFlag logic.<o:p></o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>  bool EnableVec = shouldEnableVectorizerAtOLevel(Args, false);<o:p></o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>  OptSpecifier VectorizeAliasOption =<o:p></o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>      EnableVec ? options::OPT_O_Group : options::OPT_fvectorize;<o:p></o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>  if (Args.hasFlag(options::OPT_fvectorize, VectorizeAliasOption,<o:p></o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>                   options::OPT_fno_vectorize, EnableVec))<o:p></o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>    CmdArgs.push_back("-vectorize-loops");<o:p></o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>  // -fslp-vectorize is enabled based on the optimization level selected.<o:p></o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>  bool EnableSLPVec = shouldEnableVectorizerAtOLevel(Args, true);<o:p></o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>  OptSpecifier SLPVectAliasOption =<o:p></o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>      EnableSLPVec ? options::OPT_O_Group : options::OPT_fslp_vectorize;<o:p></o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>  if (Args.hasFlag(options::OPT_fslp_vectorize, SLPVectAliasOption,<o:p></o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>                   options::OPT_fno_slp_vectorize, EnableSLPVec))<o:p></o:p></span></p><p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'>    CmdArgs.push_back("-vectorize-slp");<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>but this is ignoring the ‘</span><span style='font-size:12.0pt;font-family:"Courier New"'>-fno-*</span><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>’ flags and overriding because of the presence of ‘</span><span style='font-size:12.0pt;font-family:"Courier New"'>-O3</span><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>’ and the defaults for ‘</span><span style='font-size:12.0pt;font-family:"Courier New"'>-O3</span><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>’.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>Am I just using ‘</span><span style='font-size:12.0pt;font-family:"Courier New"'>clang</span><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>’ incorrectly, and if so, how can I achieve what I am trying to achieve?  I don’t want to use ‘</span><span style='font-size:12.0pt;font-family:"Courier New"'>-O0</span><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>’ or ‘</span><span style='font-size:12.0pt;font-family:"Courier New"'>-O1</span><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>’ because I still want all of the other options passed as usual with ‘</span><span style='font-size:12.0pt;font-family:"Courier New"'>-cc1</span><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>’ as would normally be passed with ‘</span><span style='font-size:12.0pt;font-family:"Courier New"'>-O3</span><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>’.  I am not just debugging one file, but would like to build hundreds of sources with the amended options by just changing some variables in the Makefiles to see what the impact is.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>Thanks,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'>            MartinO<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Book Antiqua",serif'><o:p> </o:p></span></p></div></body></html>