[www] Change URLs to HTTPS.

This changes most URLs in llvm's html files to HTTPS. Most changes were
search-and-replace with manual verification; some changes were manual.
For a few URLs, the websites were performing redirects or had changed
their anchors; I fixed those up manually. This consistently uses the
official https://wg21.link redirector. This also strips trailing
whitespace and fixes a couple of typos.

Fixes D69363.

There are a very small number of dead links for which I don't know any
replacements (they are equally dead as HTTP or HTTPS):

https://llvm.org/cmds/llvm2cpp.html
https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-desktop.mp4
https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-mobile.mp4
https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-desktop.mov
https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-mobile.mp4
https://llvm.org/perf/db_default/v4/nts/22463
https://polly.llvm.org/documentation/memaccess.html
This commit is contained in:
Stephan T. Lavavej 2019-10-23 16:42:47 -07:00
parent d0bd3fc88b
commit 2e4f1e112d
43 changed files with 3110 additions and 3119 deletions

View File

@ -44,19 +44,19 @@ doxygen markup, but cannot yet generate documentation from it.</li>
Clang is built as a set of libraries, which means that it is possible to Clang is built as a set of libraries, which means that it is possible to
implement capabilities similar to other source language tools, improving them implement capabilities similar to other source language tools, improving them
in various ways. Three examples are <a in various ways. Three examples are <a
href="http://distcc.samba.org/">distcc</a>, the <a href="https://github.com/distcc">distcc</a>, the <a
href="http://delta.tigris.org/">delta testcase reduction tool</a>, and the href="http://delta.tigris.org/">delta testcase reduction tool</a>, and the
"indent" source reformatting tool. "indent" source reformatting tool.
distcc can be improved to scale better and be more efficient. Delta could be distcc can be improved to scale better and be more efficient. Delta could be
faster and more efficient at reducing C-family programs if built on the clang faster and more efficient at reducing C-family programs if built on the clang
preprocessor. The clang-based indent replacement, preprocessor. The clang-based indent replacement,
<a href="http://clang.llvm.org/docs/ClangFormat.html">clang-format</a>, <a href="https://clang.llvm.org/docs/ClangFormat.html">clang-format</a>,
could be taught to handle simple structural rules like those in <a could be taught to handle simple structural rules like those in <a
href="http://llvm.org/docs/CodingStandards.html#hl_earlyexit">the LLVM coding href="https://llvm.org/docs/CodingStandards.html#use-early-exits-and-continue-to-simplify-code">the LLVM coding
standards</a>.</li> standards</a>.</li>
<li><b>Use clang libraries to extend Ragel with a JIT</b>: <a <li><b>Use clang libraries to extend Ragel with a JIT</b>: <a
href="http://research.cs.queensu.ca/~thurston/ragel/">Ragel</a> is a state href="https://www.colm.net/open-source/ragel/">Ragel</a> is a state
machine compiler that lets you embed C code into state machines and generate machine compiler that lets you embed C code into state machines and generate
C code. It would be relatively easy to turn this into a JIT compiler using C code. It would be relatively easy to turn this into a JIT compiler using
LLVM.</li> LLVM.</li>

View File

@ -45,7 +45,7 @@ to solve and a proposed implementation (from the user perspective).</p>
development. Stay tuned for more information, and of course, patches development. Stay tuned for more information, and of course, patches
welcome!</p> welcome!</p>
<p>See also <a href="http://llvm.org/PR4127">PR4127</a>.</p> <p>See also <a href="https://llvm.org/PR4127">PR4127</a>.</p>
<h2>Existing Solutions and Related Work</h2> <h2>Existing Solutions and Related Work</h2>
@ -55,14 +55,14 @@ welcome!</p>
and <tt>-m64</tt> solve a small subset of the problem for specific and <tt>-m64</tt> solve a small subset of the problem for specific
architectures.</li> architectures.</li>
<li>gcc's <a href="http://www.airs.com/ian/configure/configure_8.html">multilibs</a> <li>gcc's <a href="https://www.airs.com/ian/configure/configure_8.html">multilibs</a>
solve the part of the problem that relates to finding appropriate libraries solve the part of the problem that relates to finding appropriate libraries
and include files based on particular feature support (soft float, and include files based on particular feature support (soft float,
etc.).</li> etc.).</li>
<li>Apple's "driver driver" supported by gcc and clang solve a subset of the <li>Apple's "driver driver" supported by gcc and clang solve a subset of the
problem by supporting <tt>-arch</tt>. Apple also provides a tool chain which problem by supporting <tt>-arch</tt>. Apple also provides a tool chain which
supports <a href="http://en.wikipedia.org/wiki/Universal_binary">universal supports <a href="https://en.wikipedia.org/wiki/Universal_binary">universal
binaries</a> and object files which may include data for multiple binaries</a> and object files which may include data for multiple
architectures. See <a href="http://developer.apple.com/mac/library/technotes/tn2005/tn2137.html">TN2137</a> architectures. See <a href="http://developer.apple.com/mac/library/technotes/tn2005/tn2137.html">TN2137</a>
for an example of how this is used.</li> for an example of how this is used.</li>
@ -73,7 +73,7 @@ welcome!</p>
does not match well with tools which are inherently capable of cross does not match well with tools which are inherently capable of cross
compiling.</li> compiling.</li>
<li>The Debian <a href="http://wiki.debian.org/ArmEabiPort">ArmEabiPort</a> <li>The Debian <a href="https://wiki.debian.org/ArmEabiPort">ArmEabiPort</a>
wiki page for their work to support the ARM EABI provide an interesting wiki page for their work to support the ARM EABI provide an interesting
glimpse into how related issues impact the operating system distribution.</li> glimpse into how related issues impact the operating system distribution.</li>

View File

@ -930,9 +930,9 @@ alpha.unix.SimpleStream</span><span class="lang">
Check for misuses of stream APIs:<div class=functions> Check for misuses of stream APIs:<div class=functions>
fopen<br> fopen<br>
fclose</div>(demo checker, the subject of the demo fclose</div>(demo checker, the subject of the demo
(<a href="http://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf">Slides</a> (<a href="https://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf">Slides</a>
,<a href="https://youtu.be/kdxlsP5QVPw">Video</a>) ,<a href="https://youtu.be/kdxlsP5QVPw">Video</a>)
by Anna Zaks and Jordan Rose presented at the <a href="http://llvm.org/devmtg/2012-11/"> by Anna Zaks and Jordan Rose presented at the <a href="https://llvm.org/devmtg/2012-11/">
2012 LLVM Developers' Meeting).</a></div></div></a></td> 2012 LLVM Developers' Meeting).</a></div></div></a></td>
<td><div class="exampleContainer expandable"> <td><div class="exampleContainer expandable">
<div class="example"><pre> <div class="example"><pre>

View File

@ -17,18 +17,18 @@
<h1>Source Annotations</h1> <h1>Source Annotations</h1>
<p>The Clang frontend supports several source-level annotations in the form of <p>The Clang frontend supports several source-level annotations in the form of
<a href="http://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html">GCC-style <a href="https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html">GCC-style
attributes</a> and pragmas that can help make using the Clang Static Analyzer attributes</a> and pragmas that can help make using the Clang Static Analyzer
more useful. These annotations can both help suppress false positives as well as more useful. These annotations can both help suppress false positives as well as
enhance the analyzer's ability to find bugs.</p> enhance the analyzer's ability to find bugs.</p>
<p>This page gives a practical overview of such annotations. For more technical <p>This page gives a practical overview of such annotations. For more technical
specifics regarding Clang-specific annotations please see the Clang's list of <a specifics regarding Clang-specific annotations please see the Clang's list of <a
href="http://clang.llvm.org/docs/LanguageExtensions.html">language href="https://clang.llvm.org/docs/LanguageExtensions.html">language
extensions</a>. Details of &quot;standard&quot; GCC attributes (that Clang also extensions</a>. Details of &quot;standard&quot; GCC attributes (that Clang also
supports) can be found in the <a href="http://gcc.gnu.org/onlinedocs/gcc/">GCC supports) can be found in the <a href="https://gcc.gnu.org/onlinedocs/gcc/">GCC
manual</a>, with the majority of the relevant attributes being in the section on manual</a>, with the majority of the relevant attributes being in the section on
<a href="http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html">function <a href="https://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html">function
attributes</a>.</p> attributes</a>.</p>
<p>Note that attributes that are labeled <b>Clang-specific</b> are not <p>Note that attributes that are labeled <b>Clang-specific</b> are not
@ -91,7 +91,7 @@ recognized by GCC. Their use can be conditioned using preprocessor macros
<p>The analyzer recognizes the GCC attribute 'nonnull', which indicates that a <p>The analyzer recognizes the GCC attribute 'nonnull', which indicates that a
function expects that a given function parameter is not a null pointer. Specific function expects that a given function parameter is not a null pointer. Specific
details of the syntax of using the 'nonnull' attribute can be found in <a details of the syntax of using the 'nonnull' attribute can be found in <a
href="http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html#index-g_t_0040code_007bnonnull_007d-function-attribute-2263">GCC's href="https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-nonnull-function-attribute">GCC's
documentation</a>.</p> documentation</a>.</p>
<p>Both the Clang compiler and GCC will flag warnings for simple cases where a <p>Both the Clang compiler and GCC will flag warnings for simple cases where a
@ -139,7 +139,7 @@ conventions can cause the analyzer to miss bugs or flag false positives.</p>
functions that deviate from the Cocoa and Core Foundation conventions using the functions that deviate from the Cocoa and Core Foundation conventions using the
attributes described here. However, you should consider using proper naming attributes described here. However, you should consider using proper naming
conventions or the <a conventions or the <a
href="http://clang.llvm.org/docs/LanguageExtensions.html#the-objc-method-family-attribute"><tt>objc_method_family</tt></a> href="https://clang.llvm.org/docs/LanguageExtensions.html#the-objc-method-family-attribute"><tt>objc_method_family</tt></a>
attribute, if applicable.</p> attribute, if applicable.</p>
<h4 id="attr_ns_returns_retained">Attribute 'ns_returns_retained' <h4 id="attr_ns_returns_retained">Attribute 'ns_returns_retained'
@ -729,7 +729,7 @@ with a 'noreturn' attribute should never return.</p>
<p>Specific details of the syntax of using the 'noreturn' attribute can be found <p>Specific details of the syntax of using the 'noreturn' attribute can be found
in <a in <a
href="http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html#index-g_t_0040code_007bnoreturn_007d-function-attribute-2264">GCC's href="https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-noreturn-function-attribute">GCC's
documentation</a>.</p> documentation</a>.</p>
<p>Not only does the analyzer exploit this information when pruning false paths, <p>Not only does the analyzer exploit this information when pruning false paths,

View File

@ -29,8 +29,8 @@ Experimental (Alpha) Checkers</a>.
<ul> <ul>
<li><a href="http://www.mobileorchard.com/bug-finding-with-clang-5-resources-to-get-you-started/">Bug Finding With Clang: 5 Resources To Get You Started</a></li> <li><a href="http://www.mobileorchard.com/bug-finding-with-clang-5-resources-to-get-you-started/">Bug Finding With Clang: 5 Resources To Get You Started</a></li>
<li><a href="http://fruitstandsoftware.com/blog/index.php/2008/08/finding-memory-leaks-with-the-llvmclang-static-analyzer/#comment-2">Finding Memory Leaks With The LLVM/Clang Static Analyzer</a></li> <li><a href="http://fruitstandsoftware.com/blog/index.php/2008/08/finding-memory-leaks-with-the-llvmclang-static-analyzer/#comment-2">Finding Memory Leaks With The LLVM/Clang Static Analyzer</a></li>
<li><a href="http://www.rogueamoeba.com/utm/2008/07/14/the-clang-static-analyzer/">Under the Microscope - The Clang Static Analyzer</a></li> <li><a href="https://weblog.rogueamoeba.com/2008/07/14/the-clang-static-analyzer/">Under the Microscope - The Clang Static Analyzer</a></li>
<li><a href="http://www.mikeash.com/?page=pyblog/friday-qa-2009-03-06-using-the-clang-static-analyzer.html">Mike Ash - Using the Clang Static Analyzer</a></li> <li><a href="https://www.mikeash.com/pyblog/friday-qa-2009-03-06-using-the-clang-static-analyzer.html">Mike Ash - Using the Clang Static Analyzer</a></li>
</ul> </ul>
<h2 id="default_checkers">Default Checkers</h2> <h2 id="default_checkers">Default Checkers</h2>

View File

@ -22,13 +22,13 @@
relies on a set of checkers to implement the logic for detecting and relies on a set of checkers to implement the logic for detecting and
constructing specific bug reports. Anyone who is interested in implementing their own constructing specific bug reports. Anyone who is interested in implementing their own
checker, should check out the Building a Checker in 24 Hours talk checker, should check out the Building a Checker in 24 Hours talk
(<a href="http://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf">slides</a> (<a href="https://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf">slides</a>
<a href="https://youtu.be/kdxlsP5QVPw">video</a>) <a href="https://youtu.be/kdxlsP5QVPw">video</a>)
and refer to this page for additional information on writing a checker. The static analyzer is a and refer to this page for additional information on writing a checker. The static analyzer is a
part of the Clang project, so consult <a href="http://clang.llvm.org/hacking.html">Hacking on Clang</a> part of the Clang project, so consult <a href="https://clang.llvm.org/hacking.html">Hacking on Clang</a>
and <a href="http://llvm.org/docs/ProgrammersManual.html">LLVM Programmer's Manual</a> and <a href="https://llvm.org/docs/ProgrammersManual.html">LLVM Programmer's Manual</a>
for developer guidelines and send your questions and proposals to for developer guidelines and send your questions and proposals to
<a href=http://lists.llvm.org/mailman/listinfo/cfe-dev>cfe-dev mailing list</a>. <a href=https://lists.llvm.org/mailman/listinfo/cfe-dev>cfe-dev mailing list</a>.
</p> </p>
<ul> <ul>
@ -59,7 +59,7 @@ for developer guidelines and send your questions and proposals to
<h2 id=start>Getting Started</h2> <h2 id=start>Getting Started</h2>
<ul> <ul>
<li>To check out the source code and build the project, follow steps 1-4 of <li>To check out the source code and build the project, follow steps 1-4 of
the <a href="http://clang.llvm.org/get_started.html">Clang Getting Started</a> the <a href="https://clang.llvm.org/get_started.html">Clang Getting Started</a>
page.</li> page.</li>
<li>The analyzer source code is located under the Clang source tree: <li>The analyzer source code is located under the Clang source tree:
@ -99,19 +99,19 @@ for developer guidelines and send your questions and proposals to
the values of all the expressions in the program based on the input symbols the values of all the expressions in the program based on the input symbols
and the path. The execution is path sensitive and every possible path through and the path. The execution is path sensitive and every possible path through
the program is explored. The explored execution traces are represented with the program is explored. The explored execution traces are represented with
<a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1ExplodedGraph.html">ExplodedGraph</a> object. <a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1ExplodedGraph.html">ExplodedGraph</a> object.
Each node of the graph is Each node of the graph is
<a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1ExplodedNode.html">ExplodedNode</a>, <a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1ExplodedNode.html">ExplodedNode</a>,
which consists of a <tt>ProgramPoint</tt> and a <tt>ProgramState</tt>. which consists of a <tt>ProgramPoint</tt> and a <tt>ProgramState</tt>.
<p> <p>
<a href="http://clang.llvm.org/doxygen/classclang_1_1ProgramPoint.html">ProgramPoint</a> <a href="https://clang.llvm.org/doxygen/classclang_1_1ProgramPoint.html">ProgramPoint</a>
represents the corresponding location in the program (or the CFG). represents the corresponding location in the program (or the CFG).
<tt>ProgramPoint</tt> is also used to record additional information on <tt>ProgramPoint</tt> is also used to record additional information on
when/how the state was added. For example, <tt>PostPurgeDeadSymbolsKind</tt> when/how the state was added. For example, <tt>PostPurgeDeadSymbolsKind</tt>
kind means that the state is the result of purging dead symbols - the kind means that the state is the result of purging dead symbols - the
analyzer's equivalent of garbage collection. analyzer's equivalent of garbage collection.
<p> <p>
<a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1ProgramState.html">ProgramState</a> <a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1ProgramState.html">ProgramState</a>
represents abstract state of the program. It consists of: represents abstract state of the program. It consists of:
<ul> <ul>
<li><tt>Environment</tt> - a mapping from source code expressions to symbolic <li><tt>Environment</tt> - a mapping from source code expressions to symbolic
@ -137,19 +137,19 @@ for developer guidelines and send your questions and proposals to
<h3 id=values>Representing Values</h3> <h3 id=values>Representing Values</h3>
<p> <p>
During symbolic execution, <a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1SVal.html">SVal</a> During symbolic execution, <a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1SVal.html">SVal</a>
objects are used to represent the semantic evaluation of expressions. objects are used to represent the semantic evaluation of expressions.
They can represent things like concrete They can represent things like concrete
integers, symbolic values, or memory locations (which are memory regions). integers, symbolic values, or memory locations (which are memory regions).
They are a discriminated union of "values", symbolic and otherwise. They are a discriminated union of "values", symbolic and otherwise.
If a value isn't symbolic, usually that means there is no symbolic If a value isn't symbolic, usually that means there is no symbolic
information to track. For example, if the value was an integer, such as information to track. For example, if the value was an integer, such as
<tt>42</tt>, it would be a <a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1nonloc_1_1ConcreteInt.html">ConcreteInt</a>, <tt>42</tt>, it would be a <a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1nonloc_1_1ConcreteInt.html">ConcreteInt</a>,
and the checker doesn't usually need to track any state with the concrete and the checker doesn't usually need to track any state with the concrete
number. In some cases, <tt>SVal</tt> is not a symbol, but it really should be number. In some cases, <tt>SVal</tt> is not a symbol, but it really should be
a symbolic value. This happens when the analyzer cannot reason about something a symbolic value. This happens when the analyzer cannot reason about something
(yet). An example is floating point numbers. In such cases, the (yet). An example is floating point numbers. In such cases, the
<tt>SVal</tt> will evaluate to <a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1UnknownVal.html">UnknownVal</a>. <tt>SVal</tt> will evaluate to <a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1UnknownVal.html">UnknownVal</a>.
This represents a case that is outside the realm of the analyzer's reasoning This represents a case that is outside the realm of the analyzer's reasoning
capabilities. <tt>SVals</tt> are value objects and their values can be viewed capabilities. <tt>SVals</tt> are value objects and their values can be viewed
using the <tt>.dump()</tt> method. Often they wrap persistent objects such as using the <tt>.dump()</tt> method. Often they wrap persistent objects such as
@ -157,7 +157,7 @@ for developer guidelines and send your questions and proposals to
</p> </p>
<p> <p>
<a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1SymExpr.html">SymExpr</a> (symbol) <a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1SymExpr.html">SymExpr</a> (symbol)
is meant to represent abstract, but named, symbolic value. Symbols represent is meant to represent abstract, but named, symbolic value. Symbols represent
an actual (immutable) value. We might not know what its specific value is, but an actual (immutable) value. We might not know what its specific value is, but
we can associate constraints with that value as we analyze a path. For we can associate constraints with that value as we analyze a path. For
@ -166,14 +166,14 @@ for developer guidelines and send your questions and proposals to
</p> </p>
<p> <p>
<a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1MemRegion.html">MemRegion</a> is similar to a symbol. <a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1MemRegion.html">MemRegion</a> is similar to a symbol.
It is used to provide a lexicon of how to describe abstract memory. Regions can It is used to provide a lexicon of how to describe abstract memory. Regions can
layer on top of other regions, providing a layered approach to representing memory. layer on top of other regions, providing a layered approach to representing memory.
For example, a struct object on the stack might be represented by a <tt>VarRegion</tt>, For example, a struct object on the stack might be represented by a <tt>VarRegion</tt>,
but a <tt>FieldRegion</tt> which is a subregion of the <tt>VarRegion</tt> could but a <tt>FieldRegion</tt> which is a subregion of the <tt>VarRegion</tt> could
be used to represent the memory associated with a specific field of that object. be used to represent the memory associated with a specific field of that object.
So how do we represent symbolic memory regions? That's what So how do we represent symbolic memory regions? That's what
<a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1SymbolicRegion.html">SymbolicRegion</a> <a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1SymbolicRegion.html">SymbolicRegion</a>
is for. It is a <tt>MemRegion</tt> that has an associated symbol. Since the is for. It is a <tt>MemRegion</tt> that has an associated symbol. Since the
symbol is unique and has a unique name; that symbol names the region. symbol is unique and has a unique name; that symbol names the region.
</p> </p>
@ -245,7 +245,7 @@ values (e.g., the number 1).
solver to model symbolic execution.</li> solver to model symbolic execution.</li>
<li>Consult the <a <li>Consult the <a
href="http://llvm.org/bugs/buglist.cgi?query_format=advanced&amp;bug_status=NEW&amp;bug_status=REOPENED&amp;version=trunk&amp;component=Static%20Analyzer&amp;product=clang">Bugzilla database</a> href="https://bugs.llvm.org/buglist.cgi?query_format=advanced&amp;bug_status=NEW&amp;bug_status=REOPENED&amp;version=trunk&amp;component=Static%20Analyzer&amp;product=clang">Bugzilla database</a>
to get some ideas for new checkers and consider starting with improving/fixing to get some ideas for new checkers and consider starting with improving/fixing
bugs in the existing checkers.</li> bugs in the existing checkers.</li>
</ul> </ul>
@ -305,16 +305,16 @@ was successfully added by seeing if it appears in the list of available checkers
<h2 id=events_callbacks>Events, Callbacks, and Checker Class Structure</h2> <h2 id=events_callbacks>Events, Callbacks, and Checker Class Structure</h2>
<p> All checkers inherit from the <tt><a <p> All checkers inherit from the <tt><a
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1Checker.html"> href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1Checker.html">
Checker</a></tt> template class; the template parameter(s) describe the type of Checker</a></tt> template class; the template parameter(s) describe the type of
events that the checker is interested in processing. The various types of events events that the checker is interested in processing. The various types of events
that are available are described in the file <a that are available are described in the file <a
href="http://clang.llvm.org/doxygen/CheckerDocumentation_8cpp_source.html"> href="https://clang.llvm.org/doxygen/CheckerDocumentation_8cpp_source.html">
CheckerDocumentation.cpp</a> CheckerDocumentation.cpp</a>
<p> For each event type requested, a corresponding callback function must be <p> For each event type requested, a corresponding callback function must be
defined in the checker class (<a defined in the checker class (<a
href="http://clang.llvm.org/doxygen/CheckerDocumentation_8cpp_source.html"> href="https://clang.llvm.org/doxygen/CheckerDocumentation_8cpp_source.html">
CheckerDocumentation.cpp</a> shows the CheckerDocumentation.cpp</a> shows the
correct function name and signature for each event type). correct function name and signature for each event type).
@ -335,13 +335,13 @@ the analyzer cannot be sure whether the file was closed or not.
</ul> </ul>
<p>These events that will be used for each of these actions are, respectively, <a <p>These events that will be used for each of these actions are, respectively, <a
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1check_1_1PreCall.html">PreCall</a>, href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1check_1_1PreCall.html">PreCall</a>,
<a <a
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1check_1_1PostCall.html">PostCall</a>, href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1check_1_1PostCall.html">PostCall</a>,
<a <a
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1check_1_1DeadSymbols.html">DeadSymbols</a>, href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1check_1_1DeadSymbols.html">DeadSymbols</a>,
and <a and <a
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1check_1_1PointerEscape.html">PointerEscape</a>. href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1check_1_1PointerEscape.html">PointerEscape</a>.
The high-level structure of the checker's class is thus: The high-level structure of the checker's class is thus:
<pre class="code_example"> <pre class="code_example">
@ -376,22 +376,22 @@ several macros designed for this purpose. They are:
<ul> <ul>
<li><a <li><a
href="http://clang.llvm.org/doxygen/ProgramStateTrait_8h.html#ae4cddb54383cd702a045d7c61b009147">REGISTER_TRAIT_WITH_PROGRAMSTATE</a>: href="https://clang.llvm.org/doxygen/ProgramStateTrait_8h.html#ae4cddb54383cd702a045d7c61b009147">REGISTER_TRAIT_WITH_PROGRAMSTATE</a>:
Used when the state information is a single value. The methods available for Used when the state information is a single value. The methods available for
state types declared with this macro are <tt>get</tt>, <tt>set</tt>, and state types declared with this macro are <tt>get</tt>, <tt>set</tt>, and
<tt>remove</tt>. <tt>remove</tt>.
<li><a <li><a
href="http://clang.llvm.org/doxygen/CheckerContext_8h.html#aa27656fa0ce65b0d9ba12eb3c02e8be9">REGISTER_LIST_WITH_PROGRAMSTATE</a>: href="https://clang.llvm.org/doxygen/CheckerContext_8h.html#aa27656fa0ce65b0d9ba12eb3c02e8be9">REGISTER_LIST_WITH_PROGRAMSTATE</a>:
Used when the state information is a list of values. The methods available for Used when the state information is a list of values. The methods available for
state types declared with this macro are <tt>add</tt>, <tt>get</tt>, state types declared with this macro are <tt>add</tt>, <tt>get</tt>,
<tt>remove</tt>, and <tt>contains</tt>. <tt>remove</tt>, and <tt>contains</tt>.
<li><a <li><a
href="http://clang.llvm.org/doxygen/CheckerContext_8h.html#ad90f9387b94b344eaaf499afec05f4d1">REGISTER_SET_WITH_PROGRAMSTATE</a>: href="https://clang.llvm.org/doxygen/CheckerContext_8h.html#ad90f9387b94b344eaaf499afec05f4d1">REGISTER_SET_WITH_PROGRAMSTATE</a>:
Used when the state information is a set of values. The methods available for Used when the state information is a set of values. The methods available for
state types declared with this macro are <tt>add</tt>, <tt>get</tt>, state types declared with this macro are <tt>add</tt>, <tt>get</tt>,
<tt>remove</tt>, and <tt>contains</tt>. <tt>remove</tt>, and <tt>contains</tt>.
<li><a <li><a
href="http://clang.llvm.org/doxygen/CheckerContext_8h.html#a6d1893bb8c18543337b6c363c1319fcf">REGISTER_MAP_WITH_PROGRAMSTATE</a>: href="https://clang.llvm.org/doxygen/CheckerContext_8h.html#a6d1893bb8c18543337b6c363c1319fcf">REGISTER_MAP_WITH_PROGRAMSTATE</a>:
Used when the state information is a map from a key to a value. The methods Used when the state information is a map from a key to a value. The methods
available for state types declared with this macro are <tt>add</tt>, available for state types declared with this macro are <tt>add</tt>,
<tt>set</tt>, <tt>get</tt>, <tt>remove</tt>, and <tt>contains</tt>. <tt>set</tt>, <tt>get</tt>, <tt>remove</tt>, and <tt>contains</tt>.
@ -438,11 +438,11 @@ new data category; the name of this type is the name of the data category with
"Ty" appended. For <tt>REGISTER_TRAIT_WITH_PROGRAMSTATE</tt>, this will simply "Ty" appended. For <tt>REGISTER_TRAIT_WITH_PROGRAMSTATE</tt>, this will simply
be passed data type; for the other three macros, this will be a specialized be passed data type; for the other three macros, this will be a specialized
version of the <a version of the <a
href="http://llvm.org/doxygen/classllvm_1_1ImmutableList.html">llvm::ImmutableList</a>, href="https://llvm.org/doxygen/classllvm_1_1ImmutableList.html">llvm::ImmutableList</a>,
<a <a
href="http://llvm.org/doxygen/classllvm_1_1ImmutableSet.html">llvm::ImmutableSet</a>, href="https://llvm.org/doxygen/classllvm_1_1ImmutableSet.html">llvm::ImmutableSet</a>,
or <a or <a
href="http://llvm.org/doxygen/classllvm_1_1ImmutableMap.html">llvm::ImmutableMap</a> href="https://llvm.org/doxygen/classllvm_1_1ImmutableMap.html">llvm::ImmutableMap</a>
templated class. For the <tt>ExampleDataType</tt> example above, the type templated class. For the <tt>ExampleDataType</tt> example above, the type
created would be equivalent to writing the declaration: created would be equivalent to writing the declaration:
@ -465,9 +465,9 @@ analyzer core by calling the <tt>CheckerContext::addTransition</tt> function.
<p> When a checker detects a mistake in the analyzed code, it needs a way to <p> When a checker detects a mistake in the analyzed code, it needs a way to
report it to the analyzer core so that it can be displayed. The two classes used report it to the analyzer core so that it can be displayed. The two classes used
to construct this report are <tt><a to construct this report are <tt><a
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1BugType.html">BugType</a></tt> href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1BugType.html">BugType</a></tt>
and <tt><a and <tt><a
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1BugReport.html"> href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1BugReport.html">
BugReport</a></tt>. BugReport</a></tt>.
<p> <p>
@ -500,15 +500,15 @@ the program to meaningfully continue after such an error.
generated by the checker can be passed to the <tt>BugReport</tt> constructor generated by the checker can be passed to the <tt>BugReport</tt> constructor
without additional modification. This <tt>ExplodedNode</tt> will be the one without additional modification. This <tt>ExplodedNode</tt> will be the one
returned by the most recent call to <a returned by the most recent call to <a
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78">CheckerContext::addTransition</a>. href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78">CheckerContext::addTransition</a>.
If no transition has been performed during the current callback, the checker should call <a If no transition has been performed during the current callback, the checker should call <a
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78">CheckerContext::addTransition()</a> href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78">CheckerContext::addTransition()</a>
and use the returned node for bug reporting. and use the returned node for bug reporting.
<p>If analysis can not continue, then the current state should be transitioned <p>If analysis can not continue, then the current state should be transitioned
into a so-called <i>sink node</i>, a node from which no further analysis will be into a so-called <i>sink node</i>, a node from which no further analysis will be
performed. This is done by calling the <a performed. This is done by calling the <a
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#adeea33a5a2bed190210c4a2bb807a6f0"> href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#adeea33a5a2bed190210c4a2bb807a6f0">
CheckerContext::generateSink</a> function; this function is the same as the CheckerContext::generateSink</a> function; this function is the same as the
<tt>addTransition</tt> function, but marks the state as a sink node. Like <tt>addTransition</tt> function, but marks the state as a sink node. Like
<tt>addTransition</tt>, this returns an <tt>ExplodedNode</tt> with the updated <tt>addTransition</tt>, this returns an <tt>ExplodedNode</tt> with the updated
@ -516,7 +516,7 @@ state, which can then be passed to the <tt>BugReport</tt> constructor.
<p> <p>
After a <tt>BugReport</tt> is created, it should be passed to the analyzer core After a <tt>BugReport</tt> is created, it should be passed to the analyzer core
by calling <a href = "http://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#ae7738af2cbfd1d713edec33d3203dff5">CheckerContext::emitReport</a>. by calling <a href = "https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#ae7738af2cbfd1d713edec33d3203dff5">CheckerContext::emitReport</a>.
<h2 id=ast>AST Visitors</h2> <h2 id=ast>AST Visitors</h2>
Some checks might not require path-sensitivity to be effective. Simple AST walk Some checks might not require path-sensitivity to be effective. Simple AST walk
@ -796,9 +796,9 @@ Documentation for how the Store works</a></li>
<li><a href="https://github.com/llvm/llvm-project/blob/master/clang/docs/analyzer/IPA.txt"> <li><a href="https://github.com/llvm/llvm-project/blob/master/clang/docs/analyzer/IPA.txt">
Documentation about inlining</a></li> Documentation about inlining</a></li>
<li> The "Building a Checker in 24 hours" presentation given at the <a <li> The "Building a Checker in 24 hours" presentation given at the <a
href="http://llvm.org/devmtg/2012-11">November 2012 LLVM Developer's href="https://llvm.org/devmtg/2012-11">November 2012 LLVM Developer's
meeting</a>. Describes the construction of SimpleStreamChecker. <a meeting</a>. Describes the construction of SimpleStreamChecker. <a
href="http://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf">Slides</a> href="https://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf">Slides</a>
and <a and <a
href="https://youtu.be/kdxlsP5QVPw">video</a> href="https://youtu.be/kdxlsP5QVPw">video</a>
are available.</li> are available.</li>
@ -807,15 +807,15 @@ are available.</li>
Artem Degrachev: Clang Static Analyzer: A Checker Developer's Guide Artem Degrachev: Clang Static Analyzer: A Checker Developer's Guide
</a> (reading the previous items first might be a good idea)</li> </a> (reading the previous items first might be a good idea)</li>
<li>The list of <a href="implicit_checks.html">Implicit Checkers</a></li> <li>The list of <a href="implicit_checks.html">Implicit Checkers</a></li>
<li> <a href="http://clang.llvm.org/doxygen">Clang doxygen</a>. Contains <li> <a href="https://clang.llvm.org/doxygen">Clang doxygen</a>. Contains
up-to-date documentation about the APIs available in Clang. Relevant entries up-to-date documentation about the APIs available in Clang. Relevant entries
have been linked throughout this page. Also of use is the have been linked throughout this page. Also of use is the
<a href="http://llvm.org/doxygen">LLVM doxygen</a>, when dealing with classes <a href="https://llvm.org/doxygen">LLVM doxygen</a>, when dealing with classes
from LLVM.</li> from LLVM.</li>
<li> The <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev"> <li> The <a href="https://lists.llvm.org/mailman/listinfo/cfe-dev">
cfe-dev mailing list</a>. This is the primary mailing list used for cfe-dev mailing list</a>. This is the primary mailing list used for
discussion of Clang development (including static code analysis). The discussion of Clang development (including static code analysis). The
<a href="http://lists.llvm.org/pipermail/cfe-dev">archive</a> also contains <a href="https://lists.llvm.org/pipermail/cfe-dev">archive</a> also contains
a lot of information.</li> a lot of information.</li>
</ul> </ul>

View File

@ -224,4 +224,3 @@ false positives.
</div> </div>
</body> </body>
</html> </html>

View File

@ -37,7 +37,7 @@ and why.</li>
<h3>Bugzilla</h3> <h3>Bugzilla</h3>
<p>Please <a href="http://llvm.org/bugs/enter_bug.cgi?product=clang">file <p>Please <a href="https://bugs.llvm.org/enter_bug.cgi?product=clang">file
bugs</a> in LLVM's Bugzilla database against the Clang <b>Static Analyzer</b> bugs</a> in LLVM's Bugzilla database against the Clang <b>Static Analyzer</b>
component.</p> component.</p>
@ -45,7 +45,7 @@ component.</p>
<p>If you are using the analyzer to analyze code associated with an Apple NDA <p>If you are using the analyzer to analyze code associated with an Apple NDA
(e.g., preview versions of SDKs or seed releases of Mac OS X) please file bug (e.g., preview versions of SDKs or seed releases of Mac OS X) please file bug
reports to Apple's <a href="http://bugreporter.apple.com">Bug Reporter</a> web reports to Apple's <a href="https://feedbackassistant.apple.com/welcome">Feedback Assistant</a> web
site.</p> site.</p>
<p>You are free to always file bugs through this website, but this option is less <p>You are free to always file bugs through this website, but this option is less
@ -59,4 +59,3 @@ the analyzer has access to that bug database.</p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -78,7 +78,7 @@ invoked from the command line, and is intended to be run in tandem with a build
of a codebase.</p> of a codebase.</p>
<p>The analyzer is 100% open source and is part of the <a <p>The analyzer is 100% open source and is part of the <a
href="http://clang.llvm.org">Clang</a> project. Like the rest of Clang, the href="https://clang.llvm.org">Clang</a> project. Like the rest of Clang, the
analyzer is implemented as a C++ library that can be used by other tools and analyzer is implemented as a C++ library that can be used by other tools and
applications.</p> applications.</p>
@ -161,7 +161,7 @@ Objective-C programs that is freely available, extensible, and has a high qualit
<h3 id="Clang">Part of Clang and LLVM</h3> <h3 id="Clang">Part of Clang and LLVM</h3>
<p>As its name implies, the Clang Static Analyzer is built on top of <a <p>As its name implies, the Clang Static Analyzer is built on top of <a
href="http://clang.llvm.org">Clang</a> and <a href="http://llvm.org">LLVM</a>. href="https://clang.llvm.org">Clang</a> and <a href="https://llvm.org">LLVM</a>.
Strictly speaking, the analyzer is part of Clang, as Clang consists of a set of Strictly speaking, the analyzer is part of Clang, as Clang consists of a set of
reusable C++ libraries for building powerful source-level tools. The static reusable C++ libraries for building powerful source-level tools. The static
analysis engine used by the Clang Static Analyzer is a Clang library, and has analysis engine used by the Clang Static Analyzer is a Clang library, and has
@ -220,4 +220,3 @@ patches.</p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -39,7 +39,7 @@ weeks old.</p>
we need volunteers who are willing to help provide such regular builds. we need volunteers who are willing to help provide such regular builds.
If you wish to help contribute regular builds of the analyzer on other If you wish to help contribute regular builds of the analyzer on other
platforms, please email the <a platforms, please email the <a
href="http://lists.llvm.org/mailman/listinfo/cfe-dev">Clang href="https://lists.llvm.org/mailman/listinfo/cfe-dev">Clang
Developers' mailing list</a>.</p> Developers' mailing list</a>.</p>
<h3>Using Packaged Builds</h3> <h3>Using Packaged Builds</h3>
@ -81,7 +81,7 @@ determine where to find its accompanying files.</p>
<p>For other platforms, you must build Clang and LLVM manually. To do <p>For other platforms, you must build Clang and LLVM manually. To do
so, please follow the instructions for <a so, please follow the instructions for <a
href="http://clang.llvm.org/get_started.html#build">building Clang from href="https://clang.llvm.org/get_started.html#build">building Clang from
source code</a>.<p> source code</a>.<p>
<p>Once the Clang is built, you need to add the following to your path:</p> <p>Once the Clang is built, you need to add the following to your path:</p>
@ -108,4 +108,3 @@ when clang is built.</p></li>
</div> </div>
</body> </body>
</html> </html>

View File

@ -19,7 +19,7 @@
power. Most of the projects listed here are infrastructure-related so this list power. Most of the projects listed here are infrastructure-related so this list
is an addition to the <a href="potential_checkers.html">potential checkers is an addition to the <a href="potential_checkers.html">potential checkers
list</a>. If you are interested in tackling one of these, please send an email list</a>. If you are interested in tackling one of these, please send an email
to the <a href=http://lists.llvm.org/mailman/listinfo/cfe-dev>cfe-dev to the <a href=https://lists.llvm.org/mailman/listinfo/cfe-dev>cfe-dev
mailing list</a> to notify other members of the community.</p> mailing list</a> to notify other members of the community.</p>
<ul> <ul>
@ -51,7 +51,7 @@ mailing list</a> to notify other members of the community.</p>
<li><code>alpha.unix.StreamChecker</code> <li><code>alpha.unix.StreamChecker</code>
<p>A SimpleStreamChecker has been presented in the Building a Checker in 24 <p>A SimpleStreamChecker has been presented in the Building a Checker in 24
Hours talk Hours talk
(<a href="http://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf">slides</a> (<a href="https://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf">slides</a>
<a href="https://youtu.be/kdxlsP5QVPw">video</a>).</p> <a href="https://youtu.be/kdxlsP5QVPw">video</a>).</p>
<p>This alpha checker is an attempt to write a production grade stream checker. <p>This alpha checker is an attempt to write a production grade stream checker.
@ -144,7 +144,7 @@ mailing list</a> to notify other members of the community.</p>
<p>Currently in the analyzer the value of a union is always regarded as <p>Currently in the analyzer the value of a union is always regarded as
an unknown. an unknown.
This problem was This problem was
previously <a href="http://lists.llvm.org/pipermail/cfe-dev/2017-March/052864.html">discussed</a> previously <a href="https://lists.llvm.org/pipermail/cfe-dev/2017-March/052864.html">discussed</a>
on the mailing list, but no solution was implemented. on the mailing list, but no solution was implemented.
<p><i> (Difficulty: Medium) </i></p></p> <p><i> (Difficulty: Medium) </i></p></p>
</li> </li>
@ -228,4 +228,3 @@ mailing list</a> to notify other members of the community.</p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -30,7 +30,7 @@
memory.LeakEvalOrder</span><span class="lang"> memory.LeakEvalOrder</span><span class="lang">
(C, C++)</span><div class="descr"> (C, C++)</span><div class="descr">
Potential memory leaks caused by an undefined argument evaluation order. Potential memory leaks caused by an undefined argument evaluation order.
<p>Source: <a href="http://www.boost.org/doc/libs/1_49_0/libs/smart_ptr/shared_ptr.htm#BestPractices"> <p>Source: <a href="https://www.boost.org/doc/libs/1_49_0/libs/smart_ptr/shared_ptr.htm#BestPractices">
boost docs: shared_ptr</a>.</p></div></div></td> boost docs: shared_ptr</a>.</p></div></div></td>
<td><div class="exampleContainer expandable"> <td><div class="exampleContainer expandable">
<div class="example"><pre> <div class="example"><pre>
@ -92,7 +92,7 @@ memory.NegativeArraySize</span><span class="lang">
'n' is used to specify the buffer size may be negative. 'n' is used to specify the buffer size may be negative.
<br>Note: possibly an enhancement to <span class="name"> <br>Note: possibly an enhancement to <span class="name">
alpha.security.MallocOverflow</span>. alpha.security.MallocOverflow</span>.
<p>Source: <a href="http://cwe.mitre.org/data/definitions/20.html">CWE-20, <p>Source: <a href="https://cwe.mitre.org/data/definitions/20.html">CWE-20,
Example 2</a>.</p></div></div></td> Example 2</a>.</p></div></div></td>
<td><div class="exampleContainer expandable"> <td><div class="exampleContainer expandable">
<div class="example"><pre> <div class="example"><pre>
@ -127,7 +127,7 @@ void test() {
delete[] p; delete[] p;
} }
</pre></div></div></td> </pre></div></div></td>
<td class="aligned"><a href="http://reviews.llvm.org/D6178"> <td class="aligned"><a href="https://reviews.llvm.org/D6178">
D6178</a></td></tr> D6178</a></td></tr>
</table> </table>
@ -294,7 +294,7 @@ int test(bool cond) {
return i; return i;
} }
</pre></div></div></td> </pre></div></div></td>
<td class="aligned"><a href="http://llvm.org/bugs/show_bug.cgi?id=16890">PR16890</a></td></tr> <td class="aligned"><a href="https://bugs.llvm.org/show_bug.cgi?id=16890">PR16890</a></td></tr>
<tr><td><div class="namedescr expandable"><span class="name"> <tr><td><div class="namedescr expandable"><span class="name">
deadcode.IdempotentOperations</span><span class="lang"> deadcode.IdempotentOperations</span><span class="lang">
@ -360,7 +360,7 @@ void use(int fd) {
print("%d", count); // should not warn print("%d", count); // should not warn
} }
</pre></div></div></td> </pre></div></div></td>
<td class="aligned"><a href="http://llvm.org/bugs/show_bug.cgi?id=18701">PR18701</a></td></tr> <td class="aligned"><a href="https://bugs.llvm.org/show_bug.cgi?id=18701">PR18701</a></td></tr>
</table> </table>
@ -447,7 +447,7 @@ void test() {
delete[] p; delete[] p;
} }
</pre></div></div></td> </pre></div></div></td>
<td class="aligned"><a href="http://reviews.llvm.org/D8273">D8273</a></td></tr> <td class="aligned"><a href="https://reviews.llvm.org/D8273">D8273</a></td></tr>
<tr><td><div class="namedescr expandable"><span class="name"> <tr><td><div class="namedescr expandable"><span class="name">
@ -1734,7 +1734,7 @@ different.IntegerOverflow</span><span class="lang">
Integer overflow. Integer overflow.
<br>Note: partially handled by Clang core <br>Note: partially handled by Clang core
(search for 'overflow in expression' warning in Clang tests). (search for 'overflow in expression' warning in Clang tests).
<p>Source: <a href="http://cwe.mitre.org/data/definitions/190.html"> <p>Source: <a href="https://cwe.mitre.org/data/definitions/190.html">
CWE-190</a>.</p></div></div></td> CWE-190</a>.</p></div></div></td>
<td><div class="exampleContainer expandable"> <td><div class="exampleContainer expandable">
<div class="example"><pre> <div class="example"><pre>
@ -1761,7 +1761,7 @@ int test() {
different.SignExtension</span><span class="lang"> different.SignExtension</span><span class="lang">
(C)</span><div class="descr"> (C)</span><div class="descr">
Unexpected sign extension might take place. Unexpected sign extension might take place.
<p>Source: <a href="http://cwe.mitre.org/data/definitions/194.html"> <p>Source: <a href="https://cwe.mitre.org/data/definitions/194.html">
CWE-194</a>.</p></div></div></td> CWE-194</a>.</p></div></div></td>
<td><div class="exampleContainer expandable"> <td><div class="exampleContainer expandable">
<div class="example"><pre> <div class="example"><pre>
@ -1789,7 +1789,7 @@ unsigned int test(int i) {
different.NumericTruncation</span><span class="lang"> different.NumericTruncation</span><span class="lang">
(C)</span><div class="descr"> (C)</span><div class="descr">
Numeric truncation might take place. Numeric truncation might take place.
<p>Source: <a href="http://cwe.mitre.org/data/definitions/197.html"> <p>Source: <a href="https://cwe.mitre.org/data/definitions/197.html">
CWE-197</a>.</p></div></div></td> CWE-197</a>.</p></div></div></td>
<td><div class="exampleContainer expandable"> <td><div class="exampleContainer expandable">
<div class="example"><pre> <div class="example"><pre>
@ -1851,7 +1851,7 @@ white space-delimited string pointed to by <code><i>lpCommandLine</code></i>.
If the executable or path name has a space in it, there is a risk that a If the executable or path name has a space in it, there is a risk that a
different executable could be run because of the way the function parses different executable could be run because of the way the function parses
spaces. spaces.
<p>Source: <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx"> <p>Source: <a href="https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessa#security-remarks">
MSDN: CreateProcess function, Security Remarks</a>.</p></div></div></td> MSDN: CreateProcess function, Security Remarks</a>.</p></div></div></td>
<td><div class="exampleContainer expandable"> <td><div class="exampleContainer expandable">
<div class="example"><pre> <div class="example"><pre>
@ -1873,7 +1873,7 @@ WinAPI.LoadLibrary</span><span class="lang">
(C)</span><div class="descr"> (C)</span><div class="descr">
The <code>SearchPath()</code> function is used to retrieve a path to a DLL for The <code>SearchPath()</code> function is used to retrieve a path to a DLL for
a subsequent <code>LoadLibrary()</code> call. a subsequent <code>LoadLibrary()</code> call.
<p>Source: <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms684175%28v=vs.85%29.aspx"> <p>Source: <a href="https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibrarya#security-remarks">
MSDN: LoadLibrary function, Security Remarks</a>.</p></div></div></td> MSDN: LoadLibrary function, Security Remarks</a>.</p></div></div></td>
<td><div class="exampleContainer expandable"> <td><div class="exampleContainer expandable">
<div class="example"><pre> <div class="example"><pre>
@ -1894,7 +1894,7 @@ WinAPI.WideCharToMultiByte</span><span class="lang">
Buffer overrun while calling <code>WideCharToMultiByte()</code>. The size of Buffer overrun while calling <code>WideCharToMultiByte()</code>. The size of
the input buffer equals the number of characters in the Unicode string, while the input buffer equals the number of characters in the Unicode string, while
the size of the output buffer equals the number of bytes. the size of the output buffer equals the number of bytes.
<p>Source: <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/dd374130%28v=vs.85%29.aspx"> <p>Source: <a href="https://docs.microsoft.com/en-us/windows/win32/api/stringapiset/nf-stringapiset-widechartomultibyte">
MSDN: WideCharToMultiByte function</a>.</p></div></div></td> MSDN: WideCharToMultiByte function</a>.</p></div></div></td>
<td><div class="exampleContainer expandable"> <td><div class="exampleContainer expandable">
<div class="example"><pre> <div class="example"><pre>

View File

@ -380,4 +380,3 @@ $ find . | grep xcspec | grep Clang
</div> </div>
</body> </body>
</html> </html>

View File

@ -381,4 +381,3 @@ full path to the compiler that Xcode is using, and use that as an argument to
</div> </div>
</body> </body>
</html> </html>

View File

@ -141,4 +141,3 @@ $ sudo set-xcode-analyzer --use-xcode-clang
</div> </div>
</body> </body>
</html> </html>

View File

@ -53,7 +53,7 @@
<li>GCC supports more targets than LLVM.</li> <li>GCC supports more targets than LLVM.</li>
<li>GCC supports many language extensions, some of which are not implemented <li>GCC supports many language extensions, some of which are not implemented
by Clang. For instance, in C mode, GCC supports by Clang. For instance, in C mode, GCC supports
<a href="http://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html">nested <a href="https://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html">nested
functions</a> and has an functions</a> and has an
<a href="https://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html">extension <a href="https://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html">extension
allowing VLAs in structs</a>. allowing VLAs in structs</a>.
@ -72,8 +72,8 @@
generation. GCC is built as a monolithic static compiler, which makes generation. GCC is built as a monolithic static compiler, which makes
it extremely difficult to use as an API and integrate into other tools. it extremely difficult to use as an API and integrate into other tools.
Further, its historic design and <a Further, its historic design and <a
href="http://gcc.gnu.org/ml/gcc/2007-11/msg00460.html">current</a> href="https://gcc.gnu.org/ml/gcc/2007-11/msg00460.html">current</a>
<a href="http://gcc.gnu.org/ml/gcc/2004-12/msg00888.html">policy</a> <a href="https://gcc.gnu.org/ml/gcc/2004-12/msg00888.html">policy</a>
makes it difficult to decouple the front-end from the rest of the makes it difficult to decouple the front-end from the rest of the
compiler. </li> compiler. </li>
<li>Various GCC design decisions make it very difficult to reuse: its build <li>Various GCC design decisions make it very difficult to reuse: its build
@ -112,7 +112,7 @@
<li><a href="compatibility.html#cxx">Clang's support for C++</a> is more <li><a href="compatibility.html#cxx">Clang's support for C++</a> is more
compliant than GCC's in many ways.</li> compliant than GCC's in many ways.</li>
<li>Clang supports <li>Clang supports
<a href="http://clang.llvm.org/docs/LanguageExtensions.html">many language <a href="https://clang.llvm.org/docs/LanguageExtensions.html">many language
extensions</a>, some of which are not implemented by GCC. For instance, extensions</a>, some of which are not implemented by GCC. For instance,
Clang provides attributes for checking thread safety and extended vector Clang provides attributes for checking thread safety and extended vector
types.</li> types.</li>

View File

@ -784,7 +784,7 @@ void g(X x) {
</pre> </pre>
<p>This affects some early C++11 code, including Boost's popular <a <p>This affects some early C++11 code, including Boost's popular <a
href="http://www.boost.org/doc/libs/release/libs/smart_ptr/shared_ptr.htm"><tt>shared_ptr</tt></a> href="https://www.boost.org/doc/libs/release/libs/smart_ptr/shared_ptr.htm"><tt>shared_ptr</tt></a>
up to version 1.47.0. The fix for Boost's <tt>shared_ptr</tt> is up to version 1.47.0. The fix for Boost's <tt>shared_ptr</tt> is
<a href="https://svn.boost.org/trac/boost/changeset/73202">available here</a>.</p> <a href="https://svn.boost.org/trac/boost/changeset/73202">available here</a>.</p>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -64,7 +64,7 @@ optimizers.</p>
<p> <p>
Select this option to run the <a Select this option to run the <a
href="http://llvm.org/cmds/llvm-bcanalyzer.html">llvm-bcanalyzer</a> tool href="https://llvm.org/docs/CommandGuide/llvm-bcanalyzer.html">llvm-bcanalyzer</a> tool
on the generated bytecode, which introspects into the format of the .bc file on the generated bytecode, which introspects into the format of the .bc file
itself. </p> itself. </p>
@ -73,11 +73,10 @@ itself. </p>
<p> <p>
Select this option to run the <a Select this option to run the <a
href="http://llvm.org/cmds/llvm2cpp.html">llvm2cpp</a> tool href="https://llvm.org/cmds/llvm2cpp.html">llvm2cpp</a> tool
on the generated bytecode, which auto generates the C++ API calls that could on the generated bytecode, which auto generates the C++ API calls that could
be used to create the .bc file. be used to create the .bc file.
</p> </p>
</body> </body>
</html> </html>

View File

@ -290,7 +290,7 @@ to get bigger goals accomplished: it makes sense for everyone to work
together.</p> together.</p>
<p>For more information about the LLVM/clang license, please see the <a <p>For more information about the LLVM/clang license, please see the <a
href="http://llvm.org/docs/DeveloperPolicy.html#license">LLVM License href="https://llvm.org/docs/DeveloperPolicy.html#copyright-license-and-patents">LLVM License
Description</a> for more information.</p> Description</a> for more information.</p>

View File

@ -28,15 +28,15 @@ to author patches.
<h2>Follow what's going on</h2> <h2>Follow what's going on</h2>
<p>Clang is a subproject of the <a href="http://llvm.org">LLVM Project</a>, but <p>Clang is a subproject of the <a href="https://llvm.org">LLVM Project</a>, but
has its own mailing lists because the communities have people with different has its own mailing lists because the communities have people with different
interests. The two clang lists are:</p> interests. The two clang lists are:</p>
<ul> <ul>
<li><a href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits <li><a href="https://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits
</a> - This list is for patch submission/discussion.</li> </a> - This list is for patch submission/discussion.</li>
<li><a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> - <li><a href="https://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> -
This list is for everything else Clang related (questions and answers, design This list is for everything else Clang related (questions and answers, design
discussions, etc).</li> discussions, etc).</li>
@ -45,17 +45,17 @@ discussions, etc).</li>
<p>If you are interested in clang only, these two lists should be all <p>If you are interested in clang only, these two lists should be all
you need. If you are interested in the LLVM optimizer and code generator, you need. If you are interested in the LLVM optimizer and code generator,
please consider signing up for <a please consider signing up for <a
href="http://lists.llvm.org/mailman/listinfo/llvm-dev">llvm-dev</a> and <a href="https://lists.llvm.org/mailman/listinfo/llvm-dev">llvm-dev</a> and <a
href="http://lists.llvm.org/mailman/listinfo/llvm-commits">llvm-commits</a> href="https://lists.llvm.org/mailman/listinfo/llvm-commits">llvm-commits</a>
as well.</p> as well.</p>
<p>The most common way to talk with other developers on the project is through <p>The most common way to talk with other developers on the project is through
the <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev mailing the <a href="https://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev mailing
list</a>. The clang mailing list is a very friendly place and we welcome list</a>. The clang mailing list is a very friendly place and we welcome
newcomers. In addition to the cfe-dev list, a significant amount of design newcomers. In addition to the cfe-dev list, a significant amount of design
discussion takes place on the <a discussion takes place on the <a
href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits mailing href="https://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits mailing
list</a>. All of these lists have archives, so you can browse through previous list</a>. All of these lists have archives, so you can browse through previous
discussions or follow the list development on the web if you prefer.</p> discussions or follow the list development on the web if you prefer.</p>

View File

@ -40,11 +40,11 @@ follows:</p>
<a href="https://llvm.org/docs/GettingStarted.html#requirements"> <a href="https://llvm.org/docs/GettingStarted.html#requirements">
Getting Started with the LLVM System - Requirements</a>.</li> Getting Started with the LLVM System - Requirements</a>.</li>
<li>Note also that Python is needed for running the test suite. <li>Note also that Python is needed for running the test suite.
Get it at: <a href="http://www.python.org/download"> Get it at: <a href="https://www.python.org/downloads/">
http://www.python.org/download</a></li> https://www.python.org/downloads/</a></li>
<li>Standard build process uses CMake. Get it at: <li>Standard build process uses CMake. Get it at:
<a href="http://www.cmake.org/download"> <a href="https://cmake.org/download/">
http://www.cmake.org/download</a></li> https://cmake.org/download/</a></li>
</ul> </ul>
<li>Check out the LLVM project: <li>Check out the LLVM project:

View File

@ -41,7 +41,7 @@
<!--=====================================================================--> <!--=====================================================================-->
<p>Clang follows the <p>Clang follows the
LLVM <a href="http://llvm.org/docs/CodingStandards.html">Coding LLVM <a href="https://llvm.org/docs/CodingStandards.html">Coding
Standards</a>. When submitting patches, please take care to follow these standards Standards</a>. When submitting patches, please take care to follow these standards
and to match the style of the code to that present in Clang (for example, in and to match the style of the code to that present in Clang (for example, in
terms of indentation, bracing, and statement spacing).</p> terms of indentation, bracing, and statement spacing).</p>
@ -53,7 +53,7 @@
use <tt>llvm::errs()</tt>. Other uses of <tt>cstdio</tt> impose behavior use <tt>llvm::errs()</tt>. Other uses of <tt>cstdio</tt> impose behavior
upon clients and block integrating Clang as a library. Libraries should upon clients and block integrating Clang as a library. Libraries should
support <tt>raw_ostream</tt> based interfaces for textual support <tt>raw_ostream</tt> based interfaces for textual
output. See <a href="http://llvm.org/docs/CodingStandards.html#ll_raw_ostream">Coding output. See <a href="https://llvm.org/docs/CodingStandards.html#use-raw-ostream">Coding
Standards</a>.</li> Standards</a>.</li>
</ul> </ul>
@ -64,12 +64,12 @@
<p>Both Clang and LLVM use doxygen to provide API documentation. Their <p>Both Clang and LLVM use doxygen to provide API documentation. Their
respective web pages (generated nightly) are here:</p> respective web pages (generated nightly) are here:</p>
<ul> <ul>
<li><a href="http://clang.llvm.org/doxygen">Clang</a></li> <li><a href="https://clang.llvm.org/doxygen">Clang</a></li>
<li><a href="http://llvm.org/doxygen">LLVM</a></li> <li><a href="https://llvm.org/doxygen">LLVM</a></li>
</ul> </ul>
<p>For work on the LLVM IR generation, the LLVM assembly language <p>For work on the LLVM IR generation, the LLVM assembly language
<a href="http://llvm.org/docs/LangRef.html">reference manual</a> is <a href="https://llvm.org/docs/LangRef.html">reference manual</a> is
also useful.</p> also useful.</p>
<!--=====================================================================--> <!--=====================================================================-->
@ -87,7 +87,7 @@
the <tt>isConstQualified()</tt>, for example, to get one of the the <tt>isConstQualified()</tt>, for example, to get one of the
qualifiers, and the <tt>getTypePtr()</tt> method to get the qualifiers, and the <tt>getTypePtr()</tt> method to get the
wrapped <tt>Type*</tt> which you can then dump.</li> wrapped <tt>Type*</tt> which you can then dump.</li>
<li>For <a href="http://lldb.llvm.org"> <tt>LLDB</tt></a> users there are <li>For <a href="https://lldb.llvm.org"> <tt>LLDB</tt></a> users there are
data formatters for clang data structures in data formatters for clang data structures in
<a href="https://github.com/llvm/llvm-project/blob/master/clang/utils/ClangDataFormat.py"> <a href="https://github.com/llvm/llvm-project/blob/master/clang/utils/ClangDataFormat.py">
<tt>clang/utils/ClangDataFormat.py</tt></a>.</li> <tt>clang/utils/ClangDataFormat.py</tt></a>.</li>
@ -164,7 +164,7 @@
<tt>make test VG=1</tt> in the top-level clang directory.</p> <tt>make test VG=1</tt> in the top-level clang directory.</p>
<p>For more intensive changes, running <p>For more intensive changes, running
the <a href="http://llvm.org/docs/TestingGuide.html#testsuiterun">LLVM the <a href="https://llvm.org/docs/TestingGuide.html#quick-start">LLVM
Test Suite</a> with clang is recommended. Currently the best way to Test Suite</a> with clang is recommended. Currently the best way to
override LLVMGCC, as in: <tt>make LLVMGCC="clang -std=gnu89" override LLVMGCC, as in: <tt>make LLVMGCC="clang -std=gnu89"
TEST=nightly report</tt> (make sure <tt>clang</tt> is in your PATH or use the TEST=nightly report</tt> (make sure <tt>clang</tt> is in your PATH or use the
@ -179,7 +179,7 @@
<p>Note that the test runner is based on <p>Note that the test runner is based on
Python, which must be installed. Find Python at: Python, which must be installed. Find Python at:
<a href="http://www.python.org/download/">http://www.python.org/download/</a>. <a href="https://www.python.org/downloads/">https://www.python.org/downloads/</a>.
Download the latest stable version.</p> Download the latest stable version.</p>
<p>The GnuWin32 tools are also necessary for running the tests. <p>The GnuWin32 tools are also necessary for running the tests.
@ -197,9 +197,9 @@
<p> <p>
Please see also Please see also
<a href="http://llvm.org/docs/GettingStartedVS.html">Getting Started <a href="https://llvm.org/docs/GettingStartedVS.html">Getting Started
with the LLVM System using Microsoft Visual Studio</a> and with the LLVM System using Microsoft Visual Studio</a> and
<a href="http://llvm.org/docs/CMake.html">Building LLVM with CMake</a>. <a href="https://llvm.org/docs/CMake.html">Building LLVM with CMake</a>.
</p> </p>
<!--=====================================================================--> <!--=====================================================================-->
@ -278,7 +278,7 @@ Testing Time: 81.52s
<p>To return changes to the Clang team, unless you have checkin <p>To return changes to the Clang team, unless you have checkin
privileges, the preferred way is to send patch files privileges, the preferred way is to send patch files
<a href="https://llvm.org/docs/Contributing.html#how-to-submit-a-patch">using LLVM's Phabricator</a> with an explanation of what the patch is for. Clang follows <a <a href="https://llvm.org/docs/Contributing.html#how-to-submit-a-patch">using LLVM's Phabricator</a> with an explanation of what the patch is for. Clang follows <a
href="http://llvm.org/docs/DeveloperPolicy.html">LLVM's developer policy</a>. href="https://llvm.org/docs/DeveloperPolicy.html">LLVM's developer policy</a>.
If your patch requires a wider discussion (for example, because it is an If your patch requires a wider discussion (for example, because it is an
architectural change), you can use the cfe-dev mailing list.</p> architectural change), you can use the cfe-dev mailing list.</p>
@ -315,7 +315,7 @@ Testing Time: 81.52s
can also use <tt>-emit-llvm-bc</tt> to write an LLVM bitcode file can also use <tt>-emit-llvm-bc</tt> to write an LLVM bitcode file
which can be processed by the suite of LLVM tools which can be processed by the suite of LLVM tools
like <tt>llvm-dis</tt>, <tt>llvm-nm</tt>, etc. See the LLVM like <tt>llvm-dis</tt>, <tt>llvm-nm</tt>, etc. See the LLVM
<a href="http://llvm.org/docs/CommandGuide/">Command Guide</a> <a href="https://llvm.org/docs/CommandGuide/">Command Guide</a>
for more information.</p> for more information.</p>
</div> </div>

View File

@ -17,7 +17,7 @@
<p>The Clang project provides a language front-end and tooling infrastructure <p>The Clang project provides a language front-end and tooling infrastructure
for languages in the C language family (C, C++, Objective C/C++, OpenCL, for languages in the C language family (C, C++, Objective C/C++, OpenCL,
CUDA, and RenderScript) for the <a href="http://www.llvm.org/">LLVM</a> CUDA, and RenderScript) for the <a href="https://www.llvm.org/">LLVM</a>
project. Both a GCC-compatible compiler driver (<tt>clang</tt>) and an project. Both a GCC-compatible compiler driver (<tt>clang</tt>) and an
MSVC-compatible compiler driver (<tt>clang-cl.exe</tt>) are provided. You MSVC-compatible compiler driver (<tt>clang-cl.exe</tt>) are provided. You
can <a href="get_started.html">get and build</a> the source today.</p> can <a href="get_started.html">get and build</a> the source today.</p>

View File

@ -27,8 +27,8 @@
<dd> <dd>
<p> <p>
<b>Site:</b> <b>Site:</b>
<a href="http://wiki.freebsd.org/BuildingFreeBSDWithClang"> <a href="https://wiki.freebsd.org/BuildingFreeBSDWithClang">
http://wiki.freebsd.org/BuildingFreeBSDWithClang</a> https://wiki.freebsd.org/BuildingFreeBSDWithClang</a>
</p> </p>
<p> <p>
This is an effort to get FreeBSD to build with clang/llvm. This is an effort to get FreeBSD to build with clang/llvm.
@ -51,9 +51,9 @@
<dd> <dd>
<p> <p>
<b>Sites:</b><br /> <b>Sites:</b><br />
<a href="http://clang.debian.net/">http://clang.debian.net/</a><br /> <a href="https://clang.debian.net/">https://clang.debian.net/</a><br />
<a href="http://wiki.debian.org/llvm-clang"> <a href="https://wiki.debian.org/llvm-clang">
http://wiki.debian.org/llvm-clang</a> https://wiki.debian.org/llvm-clang</a>
</p> </p>
<p> <p>
Notes on using Clang to rebuild the whole Debian archive. Notes on using Clang to rebuild the whole Debian archive.
@ -97,7 +97,7 @@
<dd> <dd>
<p> <p>
<b>Site:</b> <b>Site:</b>
<a href="http://github.com/Ericsson/CodeCompass">http://github.com/Ericsson/CodeCompass</a> <a href="https://github.com/Ericsson/CodeCompass">https://github.com/Ericsson/CodeCompass</a>
</p> </p>
<p> <p>
CodeCompass is an open-source, extensible code comprehension framework which uses LLVM/Clang to analyze and visualize C and C++ projects. It also supports both regex-based text search, discovering complex C/C++ language elements, with advanced navigation and visualisation. CodeCompass is an open-source, extensible code comprehension framework which uses LLVM/Clang to analyze and visualize C and C++ projects. It also supports both regex-based text search, discovering complex C/C++ language elements, with advanced navigation and visualisation.
@ -108,7 +108,7 @@
<dd> <dd>
<p> <p>
<b>Site:</b> <b>Site:</b>
<a href="http://github.com/Ericsson/CodeChecker">http://github.com/Ericsson/CodeChecker</a> <a href="https://github.com/Ericsson/CodeChecker">https://github.com/Ericsson/CodeChecker</a>
</p> </p>
<p> <p>
CodeChecker is a static analysis infrastructure built on the LLVM/Clang Static Analyzer toolchain. It provides a user interface to execute analysis of C/C++ projects with Clang SA and Clang-Tidy, which outputs are then stored into a database navigable via a web application. This web application and a corresponding command-line tool supports a variety of report management and issue triaging options, such as difference view between analyses, automatic incremental analysis, marking and commenting on individual reports. CodeChecker is a static analysis infrastructure built on the LLVM/Clang Static Analyzer toolchain. It provides a user interface to execute analysis of C/C++ projects with Clang SA and Clang-Tidy, which outputs are then stored into a database navigable via a web application. This web application and a corresponding command-line tool supports a variety of report management and issue triaging options, such as difference view between analyses, automatic incremental analysis, marking and commenting on individual reports.

View File

@ -36,12 +36,12 @@
<b>sanitizer runtimes</b> - runtime libraries that are required to run <b>sanitizer runtimes</b> - runtime libraries that are required to run
the code with sanitizer instrumentation. This includes runtimes for: the code with sanitizer instrumentation. This includes runtimes for:
<ul> <ul>
<li><a href="http://clang.llvm.org/docs/AddressSanitizer.html">AddressSanitizer</a></li> <li><a href="https://clang.llvm.org/docs/AddressSanitizer.html">AddressSanitizer</a></li>
<li><a href="http://clang.llvm.org/docs/ThreadSanitizer.html">ThreadSanitizer</a></li> <li><a href="https://clang.llvm.org/docs/ThreadSanitizer.html">ThreadSanitizer</a></li>
<li><a href="http://clang.llvm.org/docs/UsersManual.html#opt-fsanitize-undefined">UndefinedBehaviorSanitizer</a></li> <li><a href="https://clang.llvm.org/docs/UsersManual.html#opt-fsanitize-undefined">UndefinedBehaviorSanitizer</a></li>
<li><a href="http://clang.llvm.org/docs/MemorySanitizer.html">MemorySanitizer</a></li> <li><a href="https://clang.llvm.org/docs/MemorySanitizer.html">MemorySanitizer</a></li>
<li><a href="http://clang.llvm.org/docs/LeakSanitizer.html">LeakSanitizer</a></li> <li><a href="https://clang.llvm.org/docs/LeakSanitizer.html">LeakSanitizer</a></li>
<li><a href="http://clang.llvm.org/docs/DataFlowSanitizer.html">DataFlowSanitizer</a></li> <li><a href="https://clang.llvm.org/docs/DataFlowSanitizer.html">DataFlowSanitizer</a></li>
</ul> </ul>
</li> </li>
<li> <li>
@ -55,7 +55,7 @@
</p> </p>
<p>All of the code in the compiler-rt project is <a <p>All of the code in the compiler-rt project is <a
href="http://llvm.org/docs/DeveloperPolicy.html#license">dual licensed</a> href="https://llvm.org/docs/DeveloperPolicy.html#copyright-license-and-patents">dual licensed</a>
under the MIT license and the UIUC License (a BSD-like license).</p> under the MIT license and the UIUC License (a BSD-like license).</p>
<!--=====================================================================--> <!--=====================================================================-->
@ -63,11 +63,11 @@
<!--=====================================================================--> <!--=====================================================================-->
<p>Currently compiler-rt is primarily used by <p>Currently compiler-rt is primarily used by
the <a href="http://clang.llvm.org">Clang</a> the <a href="https://clang.llvm.org">Clang</a>
and <a href="http://llvm.org">LLVM</a> projects as the implementation for and <a href="https://llvm.org">LLVM</a> projects as the implementation for
the runtime compiler support libraries. For more information on using the runtime compiler support libraries. For more information on using
compiler-rt with Clang, please see the Clang compiler-rt with Clang, please see the Clang
<a href="http://clang.llvm.org/get_started.html">Getting Started</a> <a href="https://clang.llvm.org/get_started.html">Getting Started</a>
page.</p> page.</p>
<!--=====================================================================--> <!--=====================================================================-->
@ -81,7 +81,7 @@
</ul> </ul>
<p>Most sanitizer runtimes are supported only on Linux x86-64. See tool-specific <p>Most sanitizer runtimes are supported only on Linux x86-64. See tool-specific
pages in <a href="http://clang.llvm.org/docs/index.html">Clang docs</a> for more pages in <a href="https://clang.llvm.org/docs/index.html">Clang docs</a> for more
details.</p> details.</p>
<!--=====================================================================--> <!--=====================================================================-->
@ -116,7 +116,7 @@
cmake. cmake.
<p>To build it separately, first <p>To build it separately, first
<a href="http://llvm.org/docs/CMake.html#quick-start">build LLVM</a> <a href="https://llvm.org/docs/CMake.html#quick-start">build LLVM</a>
separately to get llvm-config binary, and then run: separately to get llvm-config binary, and then run:
<ul> <ul>
@ -128,7 +128,7 @@
</ul> </ul>
<p>Tests for sanitizer runtimes are ported to <p>Tests for sanitizer runtimes are ported to
<a href="http://llvm.org/docs/CommandGuide/lit.html">llvm-lit</a> and are <a href="https://llvm.org/docs/CommandGuide/lit.html">llvm-lit</a> and are
run by <b>make check-all</b> command in LLVM/Clang/compiler-rt build tree.</p> run by <b>make check-all</b> command in LLVM/Clang/compiler-rt build tree.</p>
<p>compiler-rt libraries are installed to the system with <b>make install</b> <p>compiler-rt libraries are installed to the system with <b>make install</b>
@ -137,10 +137,10 @@
<p>compiler-rt doesn't have its own mailing list, if you have questions please <p>compiler-rt doesn't have its own mailing list, if you have questions please
email the <a email the <a
href="http://lists.llvm.org/mailman/listinfo/llvm-dev">llvm-dev</a> mailing href="https://lists.llvm.org/mailman/listinfo/llvm-dev">llvm-dev</a> mailing
list. Commits to the compiler-rt SVN module are automatically sent to the list. Commits to the compiler-rt SVN module are automatically sent to the
<a <a
href="http://lists.llvm.org/mailman/listinfo/llvm-commits">llvm-commits</a> href="https://lists.llvm.org/mailman/listinfo/llvm-commits">llvm-commits</a>
mailing list.</p> mailing list.</p>
</div> </div>
</body> </body>

View File

@ -8,7 +8,7 @@
libclc is an open source, BSD/MIT dual licensed libclc is an open source, BSD/MIT dual licensed
implementation of the library requirements of the implementation of the library requirements of the
OpenCL C programming language, as specified by the <a OpenCL C programming language, as specified by the <a
href="http://www.khronos.org/registry/cl/specs/opencl-1.1.pdf">OpenCL href="https://www.khronos.org/registry/OpenCL/specs/opencl-1.1.pdf">OpenCL
1.1 Specification</a>. The following sections of the specification 1.1 Specification</a>. The following sections of the specification
impose library requirements: impose library requirements:
<ul> <ul>
@ -25,7 +25,7 @@ impose library requirements:
</p> </p>
<p> <p>
libclc is intended to be used with the <a href="http://clang.llvm.org/">Clang</a> libclc is intended to be used with the <a href="https://clang.llvm.org/">Clang</a>
compiler's OpenCL frontend. compiler's OpenCL frontend.
</p> </p>
@ -47,7 +47,7 @@ support for more targets is welcome.
<h2>Mailing List</h2> <h2>Mailing List</h2>
libclc-dev@lists.llvm.org (<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/libclc-dev">subscribe/unsubscribe</a>, <a href="http://lists.llvm.org/pipermail/libclc-dev/">archives</a>) libclc-dev@lists.llvm.org (<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/libclc-dev">subscribe/unsubscribe</a>, <a href="https://lists.llvm.org/pipermail/libclc-dev/">archives</a>)
</body> </body>
</html> </html>

View File

@ -39,7 +39,7 @@
C++11, C++14 and above.</p> C++11, C++14 and above.</p>
<p>All of the code in libc++ is <a <p>All of the code in libc++ is <a
href="https://llvm.org/docs/DeveloperPolicy.html#license">dual licensed</a> href="https://llvm.org/docs/DeveloperPolicy.html#copyright-license-and-patents">dual licensed</a>
under the MIT license and the UIUC License (a BSD-like license).</p> under the MIT license and the UIUC License (a BSD-like license).</p>
<!--=====================================================================--> <!--=====================================================================-->

View File

@ -12,7 +12,7 @@
<body> <body>
<div id="menu"> <div id="menu">
<div> <div>
<a href="http://llvm.org/">LLVM Home</a> <a href="https://llvm.org/">LLVM Home</a>
</div> </div>
<div class="submenu"> <div class="submenu">
@ -23,9 +23,9 @@
<div class="submenu"> <div class="submenu">
<label>Quick Links</label> <label>Quick Links</label>
<a href="https://libcxx.llvm.org/">libc++</a> <a href="https://libcxx.llvm.org/">libc++</a>
<a href="http://lists.llvm.org/mailman/listinfo/libcxx-dev">libcxx-dev</a> <a href="https://lists.llvm.org/mailman/listinfo/libcxx-dev">libcxx-dev</a>
<a href="http://lists.llvm.org/mailman/listinfo/libcxx-commits">libcxx-commits</a> <a href="https://lists.llvm.org/mailman/listinfo/libcxx-commits">libcxx-commits</a>
<a href="http://llvm.org/bugs/">Bug Reports</a> <a href="https://bugs.llvm.org/">Bug Reports</a>
<a href="https://github.com/llvm/llvm-project/tree/master/libcxxabi/">Browse Sources</a> <a href="https://github.com/llvm/llvm-project/tree/master/libcxxabi/">Browse Sources</a>
</div> </div>
</div> </div>
@ -39,7 +39,7 @@
C++ library.</p> C++ library.</p>
<p>All of the code in libc++abi is <a <p>All of the code in libc++abi is <a
href="http://llvm.org/docs/DeveloperPolicy.html#license">dual licensed</a> href="https://llvm.org/docs/DeveloperPolicy.html#copyright-license-and-patents">dual licensed</a>
under the MIT license and the UIUC License (a BSD-like license).</p> under the MIT license and the UIUC License (a BSD-like license).</p>
<!--=====================================================================--> <!--=====================================================================-->
@ -48,7 +48,7 @@
<ul> <ul>
<li>Correctness as defined by the C++11 standard.</li> <li>Correctness as defined by the C++11 standard.</li>
<li>Provide a portable sublayer to ease the porting of <a href="http://libcxx.llvm.org/">libc++</a></li> <li>Provide a portable sublayer to ease the porting of <a href="https://libcxx.llvm.org/">libc++</a></li>
<li>On Mac OS X, be ABI compatible with the existing low-level support.</li> <li>On Mac OS X, be ABI compatible with the existing low-level support.</li>
</ul> </ul>
@ -118,7 +118,7 @@
a different ABI library), this may interfere with test results.</p> a different ABI library), this may interfere with test results.</p>
<p>Send discussions to the <p>Send discussions to the
(<a href="http://lists.llvm.org/mailman/listinfo/libcxx-dev">libcxx-dev mailing list</a>).</p> (<a href="https://lists.llvm.org/mailman/listinfo/libcxx-dev">libcxx-dev mailing list</a>).</p>
<!--=====================================================================--> <!--=====================================================================-->
<h2>Frequently asked questions</h2> <h2>Frequently asked questions</h2>

View File

@ -12,7 +12,7 @@
<body> <body>
<div id="menu"> <div id="menu">
<div> <div>
<a href="http://llvm.org/">LLVM Home</a> <a href="https://llvm.org/">LLVM Home</a>
</div> </div>
<div class="submenu"> <div class="submenu">
@ -22,9 +22,9 @@
<div class="submenu"> <div class="submenu">
<label>Quick Links</label> <label>Quick Links</label>
<a href="http://lists.llvm.org/mailman/listinfo/openmp-dev">openmp-dev</a> <a href="https://lists.llvm.org/mailman/listinfo/openmp-dev">openmp-dev</a>
<a href="http://lists.llvm.org/mailman/listinfo/openmp-commits">openmp-commits</a> <a href="https://lists.llvm.org/mailman/listinfo/openmp-commits">openmp-commits</a>
<a href="http://llvm.org/bugs/">Bug Reports</a> <a href="https://bugs.llvm.org/">Bug Reports</a>
<a href="https://github.com/llvm/llvm-project/tree/master/openmp">Browse Sources</a> <a href="https://github.com/llvm/llvm-project/tree/master/openmp">Browse Sources</a>
</div> </div>
</div> </div>
@ -60,7 +60,7 @@
</p> </p>
<p>All of the code here is <a <p>All of the code here is <a
href="http://llvm.org/docs/DeveloperPolicy.html#license">dual licensed</a> href="https://llvm.org/docs/DeveloperPolicy.html#copyright-license-and-patents">dual licensed</a>
under the MIT license and the UIUC License (a BSD-like license). under the MIT license and the UIUC License (a BSD-like license).
The LICENSE.txt file at the top of the OpenMP project contains The LICENSE.txt file at the top of the OpenMP project contains
the license text and associated patent grants. the license text and associated patent grants.
@ -83,19 +83,19 @@
<!--=====================================================================--> <!--=====================================================================-->
<ul> <ul>
<li>Support for the <a href="http://www.openmp.org/mp-documents/OpenMP3.1.pdf">OpenMP <li>Support for the <a href="https://www.openmp.org/wp-content/uploads/OpenMP3.1.pdf">OpenMP
3.1 standard (PDF)</a> has been achieved in the Clang 3.8.0 3.1 standard (PDF)</a> has been achieved in the Clang 3.8.0
release. release.
</li> </li>
<li>Support for the <li>Support for the
<a href="http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf">OpenMP <a href="https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.pdf">OpenMP
4.0 standard (PDF)</a> and <a href="http://www.openmp.org/mp-documents/OpenMP4.5.pdf">OpenMP 4.0 standard (PDF)</a> and <a href="https://www.openmp.org/wp-content/uploads/openmp-4.5.pdf">OpenMP
4.5 standard (PDF)</a> is now being implemented. (Some OpenMP 4.0 4.5 standard (PDF)</a> is now being implemented. (Some OpenMP 4.0
and 4.5 features are already available). and 4.5 features are already available).
<li>High performance.</li> <li>High performance.</li>
<li>ABI compatibility with <a href="http://gcc.gnu.org">Gcc</a> and <li>ABI compatibility with <a href="https://gcc.gnu.org">Gcc</a> and
<a href="http://software.intel.com/en-us/intel-compilers">Intel's <a href="https://software.intel.com/en-us/compilers">Intel's
existing OpenMP compilers.</a> existing OpenMP compilers.</a>
We currently have binary compatibility with OpenMP We currently have binary compatibility with OpenMP
3.1 code compiled by gcc 4.9, however we do not have support 3.1 code compiled by gcc 4.9, however we do not have support
@ -149,7 +149,7 @@
<!--=====================================================================--> <!--=====================================================================-->
<p>First please review our <p>First please review our
<a href="http://llvm.org/docs/DeveloperPolicy.html">Developer's Policy</a>. <a href="https://llvm.org/docs/DeveloperPolicy.html">Developer's Policy</a>.
<p>To check out the code, use:</p> <p>To check out the code, use:</p>
@ -186,7 +186,7 @@
</p> </p>
<p>Send discussions to the <p>Send discussions to the
(<a href="http://lists.llvm.org/mailman/listinfo/openmp-dev">OpenMP mailing list</a>).</p> (<a href="https://lists.llvm.org/mailman/listinfo/openmp-dev">OpenMP mailing list</a>).</p>
<!--=====================================================================--> <!--=====================================================================-->

View File

@ -51,7 +51,7 @@ interface.</li>
<h2> Older releases</h2> <h2> Older releases</h2>
No changelog available. Please look at the <a No changelog available. Please look at the <a
href="http://repo.or.cz/w/polly-mirror.git">commit history</a>. href="https://repo.or.cz/w/polly-mirror.git">commit history</a>.
</html> </html>
</div> </div>

View File

@ -25,7 +25,7 @@ of four simple steps:
<pre> <pre>
mkdir polly &amp;&amp; cd polly mkdir polly &amp;&amp; cd polly
wget http://polly.llvm.org/polly.sh wget https://polly.llvm.org/polly.sh
chmod +x polly.sh chmod +x polly.sh
./polly.sh ./polly.sh
</pre> </pre>
@ -34,7 +34,7 @@ chmod +x polly.sh
<h3 id="source"> Get the code </h3> <h3 id="source"> Get the code </h3>
<pre> <pre>
git clone http://github.com/llvm/llvm-project.git llvm_git git clone https://github.com/llvm/llvm-project.git llvm_git
</pre> </pre>
<h3 id="build">Build Polly</h3> <h3 id="build">Build Polly</h3>

View File

@ -34,7 +34,7 @@
For many users, however, it's not the existing optimizations in Polly that are For many users, however, it's not the existing optimizations in Polly that are
of most interest, but the new analyses and optimizations enabled by the Polly of most interest, but the new analyses and optimizations enabled by the Polly
infrastructure. At infrastructure. At
<a href="http://polyhedral.info">polyhedral.info</a> you can get an idea of <a href="https://polyhedral.info">polyhedral.info</a> you can get an idea of
what has already been done and what is possible in the context of polyhedral what has already been done and what is possible in the context of polyhedral
compilation. compilation.
@ -152,7 +152,7 @@
<h4>Polly can be built without GPL licensed software</h4> After Sebastian <h4>Polly can be built without GPL licensed software</h4> After Sebastian
Pop's Pop's
and David Peixotto's (both Qualcomm) recent <a and David Peixotto's (both Qualcomm) recent <a
href="http://repo.or.cz/w/isl.git/commit/60703e3ee89b9d5d4d1afb6a3f611292c0884574">commit</a> href="https://repo.or.cz/w/isl.git/commit/60703e3ee89b9d5d4d1afb6a3f611292c0884574">commit</a>
to isl, isl's latest development version can be built with imath instead of to isl, isl's latest development version can be built with imath instead of
GMP. With both CLooG and gmp having become optional, the last obilgatory GMP. With both CLooG and gmp having become optional, the last obilgatory
dependency to GPL licensed software has been removed. Now Polly only depends dependency to GPL licensed software has been removed. Now Polly only depends
@ -194,7 +194,7 @@
buildbots</a> has been extended. We now have 16 new blades that track buildbots</a> has been extended. We now have 16 new blades that track
correctness and performance when compiling the LLVM test-suite. For now five correctness and performance when compiling the LLVM test-suite. For now five
of them are used to provide <a of them are used to provide <a
href="http://llvm.org/perf/db_default/v4/nts/22463">fine granularity href="https://llvm.org/perf/db_default/v4/nts/22463">fine granularity
reports</a> (almost per-commit) reports</a> (almost per-commit)
for 'clang -O3' (no polly). We also have six machines that track different for 'clang -O3' (no polly). We also have six machines that track different
configurations of polly. configurations of polly.
@ -205,11 +205,11 @@
<h4>islplot released</h4> <h4>islplot released</h4>
<a href="https://github.com/tobig/islplot">islplot</a> is a library that <a href="https://github.com/tobig/islplot">islplot</a> is a library that
generates illustrations of integer sets and maps. It relies on <a generates illustrations of integer sets and maps. It relies on <a
href="http://repo.or.cz/w/isl.git">isl</a> to model the integer sets and uses the <a href="https://repo.or.cz/w/isl.git">isl</a> to model the integer sets and uses the <a
href="https://pypi.python.org/pypi/islpy">islpy</a> Python bindings to access href="https://pypi.python.org/pypi/islpy">islpy</a> Python bindings to access
them. Plotting is performed with <a them. Plotting is performed with <a
href="http://matplotlib.org">matplotlib</a>. The following <a href="https://matplotlib.org">matplotlib</a>. The following <a
href="http://nbviewer.ipython.org/github/tobig/islplot/blob/master/notebooks/islplot-examples.ipynb"> href="https://nbviewer.ipython.org/github/tobig/islplot/blob/master/notebooks/islplot-examples.ipynb">
Examples</a> show its use. Examples</a> show its use.
</td> </td>
</tr> </tr>
@ -217,7 +217,7 @@
<tr><td width="120"><p>November</p></td> <tr><td width="120"><p>November</p></td>
<td> <td>
<h4>Loop optimization BoF at upcoming LLVM conference</h4> <h4>Loop optimization BoF at upcoming LLVM conference</h4>
At the upcoming <a href="http://llvm.org/devmtg/2013-11/#bof5">LLVM conference At the upcoming <a href="https://llvm.org/devmtg/2013-11/#bof5">LLVM conference
</a> there will be a loop optimization BoF discussing Polly and other high </a> there will be a loop optimization BoF discussing Polly and other high
level loop optimizers. level loop optimizers.
</td> </td>
@ -226,8 +226,8 @@
<td> <td>
<h4>Automatic code coverage and static analysis tests</h4> <h4>Automatic code coverage and static analysis tests</h4>
Sylvestre Ledru set up automatic tests for <a Sylvestre Ledru set up automatic tests for <a
href="http://llvm.org/reports/coverage/">code coverage</a> and href="https://llvm.org/reports/coverage/">code coverage</a> and
<a href="http://llvm.org/reports/scan-build/">static analysis</a> <a href="https://llvm.org/reports/scan-build/">static analysis</a>
which run at least once a day and which include results for Polly. which run at least once a day and which include results for Polly.
<h4>Move to CLooG 0.18.1 and isl 0.12.1</h4> <h4>Move to CLooG 0.18.1 and isl 0.12.1</h4>
With the move to an isl 0.12 version Polly can be compiled without the With the move to an isl 0.12 version Polly can be compiled without the
@ -283,13 +283,13 @@ research tool.<br \>
<tr><td width="120"><p>February</p></td> <tr><td width="120"><p>February</p></td>
<td> <td>
<p>Polly is an official LLVM project, reachable at <a <p>Polly is an official LLVM project, reachable at <a
href="http://polly.llvm.org">http://polly.llvm.org</a></p> href="https://polly.llvm.org">https://polly.llvm.org</a></p>
</td></tr> </td></tr>
<tr><td width="120"><p>January</p></td> <tr><td width="120"><p>January</p></td>
<td> <td>
<p>Improved support for the isl scheduling optimizer</p> <p>Improved support for the isl scheduling optimizer</p>
Polly can now automatically optimize all <a Polly can now automatically optimize all <a
href="http://www.cse.ohio-state.edu/~pouchet/software/polybench/">polybench href="https://web.cse.ohio-state.edu/~pouchet.2/software/polybench/">polybench
2.0</a> kernels without the help of 2.0</a> kernels without the help of
an external optimizer. The compile time is reasonable and we can show an external optimizer. The compile time is reasonable and we can show
notable speedups for various kernels. notable speedups for various kernels.
@ -300,7 +300,7 @@ research tool.<br \>
<tr><td width="120"><p>November</p></td> <tr><td width="120"><p>November</p></td>
<td> <td>
<p> <p>
Talk at the <a href="http://llvm.org/devmtg/2011-11/"> Talk at the <a href="https://llvm.org/devmtg/2011-11/">
LLVM Developer Meeting 2011</a></p> LLVM Developer Meeting 2011</a></p>
New SCEV parser<br> New SCEV parser<br>
(Allows parameters in array subscript and max/signextend) (Allows parameters in array subscript and max/signextend)
@ -384,7 +384,7 @@ research tool.<br \>
<tr> <tr>
<td><p> November </p></td> <td><p> November </p></td>
<td><p>Talk at the <a <td><p>Talk at the <a
href="http://llvm.org/devmtg/2010-11/">LLVM Developer Meeting</a> </p></td> href="https://llvm.org/devmtg/2010-11/">LLVM Developer Meeting</a> </p></td>
</tr> </tr>
<tr> <tr>

View File

@ -14,7 +14,7 @@
<h1>Performance</h1> <h1>Performance</h1>
<p>To evaluate the performance benefits Polly currently provides we compiled the <p>To evaluate the performance benefits Polly currently provides we compiled the
<a href="http://www.cse.ohio-state.edu/~pouchet/software/polybench/">Polybench <a href="https://web.cse.ohio-state.edu/~pouchet.2/software/polybench/">Polybench
2.0</a> benchmark suite. Each benchmark was run with double precision floating 2.0</a> benchmark suite. Each benchmark was run with double precision floating
point values on an Intel Core Xeon X5670 CPU @ 2.93GHz (12 cores, 24 thread) point values on an Intel Core Xeon X5670 CPU @ 2.93GHz (12 cores, 24 thread)
system. We used <a href="http://pocc.sf.net">PoCC</a> and the included <a system. We used <a href="http://pocc.sf.net">PoCC</a> and the included <a

View File

@ -21,15 +21,15 @@
<ul> <ul>
<li><b>VoIP/SIP:</b> sip:000777polyhedral@iptel.org<br /> <li><b>VoIP/SIP:</b> sip:000777polyhedral@iptel.org<br />
<a href="http://ekiga.org">Ekiga</a> is a SIP client that works well for <a href="https://www.ekiga.org">Ekiga</a> is a SIP client that works well for
most of us.</li> most of us.</li>
<li><b>Traditional Dailin Numbers:</b><br /> <li><b>Traditional Dial In Numbers:</b><br />
To use your normal land line phone to connect to the conference dial To use your normal land line phone to connect to the conference dial
one of the many available <a one of the many available <a
href="http://www.sipbroker.com/sipbroker/action/pstnNumbers">dial in href="http://www.sipbroker.com/sipbroker/action/pstnNumbers">dial in
numbers</a>. When asked for the number to connect type: <em>*011497659</em>. numbers</a>. When asked for the number to connect type: <em>*011497659</em>.
<br /> <br />
Attention: Some of the dial in numbers do not work reliable. If you are not Attention: Some of the dial in numbers do not work reliably. If you are not
asked for the number you want to connect to after a couple of seconds, just asked for the number you want to connect to after a couple of seconds, just
try another one. <br/> try another one. <br/>
Some selected dial in numbers: Some selected dial in numbers:

View File

@ -30,7 +30,7 @@
href="https://developers.google.com/open-source/gsoc/">Google Summer of href="https://developers.google.com/open-source/gsoc/">Google Summer of
Code</a> projects. In case you are interested in a Google Summer of code Code</a> projects. In case you are interested in a Google Summer of code
project make sure to reach out via the Polly <a project make sure to reach out via the Polly <a
href="http://groups.google.com/group/polly-dev">mailing list</a> early to href="https://groups.google.com/group/polly-dev">mailing list</a> early to
discuss your project proposal. discuss your project proposal.
<h3>Integrate Polly with the LLVM vectorizers</h3> <h3>Integrate Polly with the LLVM vectorizers</h3>
@ -59,7 +59,7 @@
libraries and outperforming the code icc/gcc currently generate. libraries and outperforming the code icc/gcc currently generate.
<h3>Polly support for Julia - First steps</h3> <h3>Polly support for Julia - First steps</h3>
<a href="http://julialang.org/">Julia</a> is a new matlab style programming <a href="https://julialang.org/">Julia</a> is a new matlab style programming
language that provides C like performance for scientific computing. Even language that provides C like performance for scientific computing. Even
though Julia also translates to LLVM-IR, parsing and optimizing Julia code though Julia also translates to LLVM-IR, parsing and optimizing Julia code
poses new challenges that currently prevent Polly from optimizing Julia poses new challenges that currently prevent Polly from optimizing Julia

View File

@ -17,7 +17,7 @@
<!--*********************************************************************--> <!--*********************************************************************-->
<h2> Publications about polyhedral compilation </h2> <h2> Publications about polyhedral compilation </h2>
<a href="http://polyhedral.info/publications.html">polyhedral.info</a> has a <a href="https://polyhedral.info/publications.html">polyhedral.info</a> has a
large list of publications related to polyhedral compilation. They are very large list of publications related to polyhedral compilation. They are very
useful to get an idea of the latest developments in this area of compilation useful to get an idea of the latest developments in this area of compilation
as well as to understand what kind of optimizations can be built on top of as well as to understand what kind of optimizations can be built on top of
@ -41,7 +41,7 @@ Parallel Processing Letters 2012 22:04<br />
<li><em>Loopy: Programmable and Formally Verified Loop Transformations</em><br /> <li><em>Loopy: Programmable and Formally Verified Loop Transformations</em><br />
Kedar Namjoshi and Nimit Singhania<br /> Kedar Namjoshi and Nimit Singhania<br />
23rd Static Analysis Symposium (SAS 2016)<br /> 23rd Static Analysis Symposium (SAS 2016)<br />
<a href="http://link.springer.com/chapter/10.1007/978-3-662-53413-7_19">Paper</a> <a href="https://link.springer.com/chapter/10.1007/978-3-662-53413-7_19">Paper</a>
</li> </li>
<li><em>Input Space Splitting for OpenCL</em><br /> <li><em>Input Space Splitting for OpenCL</em><br />
Simon Moll, Johannes Doerfert and Sebastian Hack<br /> Simon Moll, Johannes Doerfert and Sebastian Hack<br />
@ -102,10 +102,10 @@ Parallel Processing Letters 2012 22:04<br />
<li><em>Polly - First Successful Optimizations - How to proceed?</em><br /> <li><em>Polly - First Successful Optimizations - How to proceed?</em><br />
Tobias Grosser, Ragesh A<br /> Tobias Grosser, Ragesh A<br />
LLVM Developer Meeting 2011<br /><a LLVM Developer Meeting 2011<br /><a
href="http://llvm.org/devmtg/2011-11/Grosser_PollyOptimizations.pdf">Slides</a>, <a href="https://llvm.org/devmtg/2011-11/Grosser_PollyOptimizations.pdf">Slides</a>, <a
href="http://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-desktop.mov">Video href="https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-desktop.mov">Video
(Computer)</a>, <a (Computer)</a>, <a
href="http://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-mobile.mp4">Video href="https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-mobile.mp4">Video
(Mobile)</a></li> (Mobile)</a></li>
<li><em>A Framework for Automatic OpenMP Code Generation</em><br /> <li><em>A Framework for Automatic OpenMP Code Generation</em><br />
Raghesh A<br /> Raghesh A<br />
@ -133,10 +133,10 @@ Parallel Processing Letters 2012 22:04<br />
<li><em>Polly - Polyhedral Transformations for LLVM</em><br /> <li><em>Polly - Polyhedral Transformations for LLVM</em><br />
Tobias Grosser, Hongbin Zheng<br /> Tobias Grosser, Hongbin Zheng<br />
LLVM Developer Meeting 2010<br /><a LLVM Developer Meeting 2010<br /><a
href="http://llvm.org/devmtg/2010-11/Grosser-Polly.pdf">Slides</a>, <a href="https://llvm.org/devmtg/2010-11/Grosser-Polly.pdf">Slides</a>, <a
href="http://llvm.org/devmtg/2010-11/videos/Grosser_Polly-desktop.mp4">Video href="https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-desktop.mp4">Video
(Computer)</a>, <a (Computer)</a>, <a
href="http://llvm.org/devmtg/2010-11/videos/Grosser_Polly-mobile.mp4">Video href="https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-mobile.mp4">Video
(Mobile)</a></li> (Mobile)</a></li>
</ul> </ul>

View File

@ -151,7 +151,7 @@ Code generate PHI dependences
</td><td> </td><td>
</td></tr> </td></tr>
<tr> <tr>
<th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=12398">Remove <th align="left"> <a href="https://bugs.llvm.org/show_bug.cgi?id=12398">Remove
the need for independent blocks</a> the need for independent blocks</a>
</th><td class="done"> Done </th><td class="done"> Done
</td><td> </td><td>
@ -172,13 +172,13 @@ cornercases </th></tr>
<th> Owner </th> <th> Owner </th>
</tr> </tr>
<tr> <tr>
<th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=10381">Derive <th align="left"> <a href="https://bugs.llvm.org/show_bug.cgi?id=10381">Derive
optimal types (instead of always using i64)</a> optimal types (instead of always using i64)</a>
</th><td class="open"> Open </th><td class="open"> Open
</td><td> </td><td>
</td></tr> </td></tr>
<tr> <tr>
<th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=12397">Model <th align="left"> <a href="https://bugs.llvm.org/show_bug.cgi?id=12397">Model
integer wrapping</a> integer wrapping</a>
</th><td align="center" class='done'> Done </th><td align="center" class='done'> Done
</td><td> Johannes </td><td> Johannes
@ -274,14 +274,14 @@ Optimizations (ongoing)</h3>
<tr> <tr>
<tr> <tr>
<th align="left"> <a <th align="left"> <a
href="http://llvm.org/bugs/show_bug.cgi?id=12403">Variable-size href="https://bugs.llvm.org/show_bug.cgi?id=12403">Variable-size
multi-dimensional arrays</a> multi-dimensional arrays</a>
</th><td align="center" class='done'> Done </th><td align="center" class='done'> Done
</td><td>Sebastian </td><td>Sebastian
</td></tr> </td></tr>
<tr> <tr>
<th align="left"> <a <th align="left"> <a
href="http://llvm.org/bugs/show_bug.cgi?id=12407">Derive information for href="https://bugs.llvm.org/show_bug.cgi?id=12407">Derive information for
the SCoP context the SCoP context
</a> </a>
</th> </th>
@ -289,7 +289,7 @@ the SCoP context
</td><td> </td><td>
</td></tr> </td></tr>
<tr> <tr>
<th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=12402">Finer <th align="left"> <a href="https://bugs.llvm.org/show_bug.cgi?id=12402">Finer
grained statements</a> grained statements</a>
</th><td align="center" class='nice'> Open </th><td align="center" class='nice'> Open
</td><td> </td><td>
@ -317,7 +317,7 @@ grained statements</a>
<th> Owner </th> <th> Owner </th>
</tr> </tr>
<tr> <tr>
<th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=12405">Polyhedral <th align="left"> <a href="https://bugs.llvm.org/show_bug.cgi?id=12405">Polyhedral
dead code elimination</a> dead code elimination</a>
</th><td class="done">Done </th><td class="done">Done
</td><td> </td><td>
@ -342,7 +342,7 @@ dead code elimination</a>
</td><td>Johannes </td><td>Johannes
<tr> <tr>
<th align="left"> <a <th align="left"> <a
href="http://polly.llvm.org/documentation/gpgpucodegen.html">GPGPU Code href="https://polly.llvm.org/documentation/gpgpucodegen.html">GPGPU Code
Generation</a> Generation</a>
</th><td class="niceinprogress">in progress </th><td class="niceinprogress">in progress
</td><td> </td><td>
@ -350,13 +350,13 @@ Yabin
</td></tr> </td></tr>
<tr> <tr>
<th align="left"> <a <th align="left"> <a
href="http://polly.llvm.org/documentation/memaccess.html">Allow optimizers to href="https://polly.llvm.org/documentation/memaccess.html">Allow optimizers to
change memory access functions</a> change memory access functions</a>
</th><td class="done"> Done </th><td class="done"> Done
</td><td>Johannes </td><td>Johannes
</td></tr> </td></tr>
<tr> <tr>
<th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=12406">Make code <th align="left"> <a href="https://bugs.llvm.org/show_bug.cgi?id=12406">Make code
generation independent of the clast</a> generation independent of the clast</a>
</th><td class="done">Done </th><td class="done">Done
</td><td> </td><td>
@ -377,7 +377,7 @@ generation independent of the clast</a>
</td></tr> </td></tr>
<tr> <tr>
<th align="left"> Add <a <th align="left"> Add <a
href="http://www.cse.ohio-state.edu/~pouchet/software/polybench/">Polybench href="https://web.cse.ohio-state.edu/~pouchet.2/software/polybench/">Polybench
3.2</a> to the LLVM test suite 3.2</a> to the LLVM test suite
</th><td class="done"> Done </th><td class="done"> Done
</td><td> </td><td>
@ -407,8 +407,8 @@ href="http://www.cse.ohio-state.edu/~pouchet/software/polybench/">Polybench
<th align="left"> Move to LLVM SVN <th align="left"> Move to LLVM SVN
</th><td class="done" align="center"> </th><td class="done" align="center">
<a <a
href="http://llvm.org/svn/llvm-project/polly" href="https://llvm.org/svn/llvm-project/polly"
>http://llvm.org/svn/llvm-project/polly</a> >https://llvm.org/svn/llvm-project/polly</a>
</td><td> Tobias </td><td> Tobias
</td></tr> </td></tr>
@ -422,14 +422,14 @@ llvm-commits@lists.llvm.org
<th align="left"> LLVM Bugzilla category <th align="left"> LLVM Bugzilla category
</th><td class="done" align="center"> </th><td class="done" align="center">
<a href="http://llvm.org/bugs/enter_bug.cgi?product=Projects">LLVM Bugzilla</a> <a href="https://bugs.llvm.org/enter_bug.cgi?product=Projects">LLVM Bugzilla</a>
<br /> <br />
(Product is 'Projects', Component is 'Polly') (Product is 'Projects', Component is 'Polly')
</td><td> Tobias </td><td> Tobias
<tr> <tr>
<th align="left"> Website <th align="left"> Website
</th><td class="done" align="center"> </th><td class="done" align="center">
<a href="http://polly.llvm.org">http://polly.llvm.org</a> <a href="https://polly.llvm.org">https://polly.llvm.org</a>
</td><td> Tobias </td><td> Tobias
</td></tr> </td></tr>
<tr> <tr>