diff --git a/openmp/CMakeLists.txt b/openmp/CMakeLists.txt
--- a/openmp/CMakeLists.txt
+++ b/openmp/CMakeLists.txt
@@ -91,5 +91,9 @@
add_subdirectory(tools)
endif()
+
+# Build documentation
+add_subdirectory(docs)
+
# Now that we have seen all testsuites, create the check-openmp target.
construct_check_openmp_target()
diff --git a/openmp/docs/CMakeLists.txt b/openmp/docs/CMakeLists.txt
new file mode 100644
--- /dev/null
+++ b/openmp/docs/CMakeLists.txt
@@ -0,0 +1,11 @@
+if (LLVM_ENABLE_SPHINX)
+ include(AddSphinxTarget)
+ if (SPHINX_FOUND)
+ if (${SPHINX_OUTPUT_HTML})
+ add_sphinx_target(html openmp)
+ endif()
+ if (${SPHINX_OUTPUT_MAN})
+ add_sphinx_target(man openmp)
+ endif()
+ endif()
+endif()
diff --git a/openmp/docs/README.txt b/openmp/docs/README.txt
new file mode 100644
--- /dev/null
+++ b/openmp/docs/README.txt
@@ -0,0 +1,45 @@
+OpenMP LLVM Documentation
+==================
+
+OpenMP LLVM's documentation is written in reStructuredText, a lightweight
+plaintext markup language (file extension `.rst`). While the
+reStructuredText documentation should be quite readable in source form, it
+is mostly meant to be processed by the Sphinx documentation generation
+system to create HTML pages which are hosted on and
+updated after every commit. Manpage output is also supported, see below.
+
+If you instead would like to generate and view the HTML locally, install
+Sphinx and then do:
+
+ cd
+ cmake -DLLVM_ENABLE_SPHINX=true -DSPHINX_OUTPUT_HTML=true
+ make
+ $BROWSER /projects/openmp/docs//html/index.html
+
+The mapping between reStructuredText files and generated documentation is
+`docs/Foo.rst` <-> `/projects/openmp/docs//html/Foo.html` <->
+`https://openmp.llvm.org/docs/Foo.html`.
+
+If you are interested in writing new documentation, you will want to read
+`llvm/docs/SphinxQuickstartTemplate.rst` which will get you writing
+documentation very fast and includes examples of the most important
+reStructuredText markup syntax.
+
+Manpage Output
+===============
+
+Building the manpages is similar to building the HTML documentation. The
+primary difference is to use the `man` makefile target, instead of the
+default (which is `html`). Sphinx then produces the man pages in the
+directory `/docs/man/`.
+
+ cd
+ cmake -DLLVM_ENABLE_SPHINX=true -DSPHINX_OUTPUT_MAN=true
+ make
+ man -l >build-dir>/docs/man/FileCheck.1
+
+The correspondence between .rst files and man pages is
+`docs/CommandGuide/Foo.rst` <-> `/projects/openmp/docs//man/Foo.1`.
+These .rst files are also included during HTML generation so they are also
+viewable online (as noted above) at e.g.
+`https://openmp.llvm.org/docs/CommandGuide/Foo.html`.
diff --git a/openmp/docs/ReleaseNotes.rst b/openmp/docs/ReleaseNotes.rst
--- a/openmp/docs/ReleaseNotes.rst
+++ b/openmp/docs/ReleaseNotes.rst
@@ -1,5 +1,5 @@
===========================
-openmp 11.0.0 Release Notes
+OpenMP 11.0.0 Release Notes
===========================
.. contents::
diff --git a/openmp/docs/_templates/indexsidebar.html b/openmp/docs/_templates/indexsidebar.html
new file mode 100644
--- /dev/null
+++ b/openmp/docs/_templates/indexsidebar.html
@@ -0,0 +1,8 @@
+{# This template defines sidebar which can be used to provide common links on
+ all documentation pages. #}
+
+
+{{ super() }}
+{% endblock %}
+
+{# put the sidebar before the body #}
+{% block sidebar1 %}{{ sidebar() }}{% endblock %}
+{% block sidebar2 %}{% endblock %}
diff --git a/openmp/docs/_themes/llvm-theme/static/contents.png b/openmp/docs/_themes/llvm-theme/static/contents.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@ tt {
+ background-color: #f2f2f2;
+ border-bottom: 1px solid #ddd;
+ color: #333;
+}
+
+tt.descname, tt.descclassname, tt.xref {
+ border: 0;
+}
+
+hr {
+ border: 1px solid #abc;
+ margin: 2em;
+}
+
+p a tt {
+ border: 0;
+ color: #CA7900;
+}
+
+p a tt:hover {
+ color: #2491CF;
+}
+
+a tt {
+ border: none;
+}
+
+pre {
+ font-family: 'Consolas', 'Deja Vu Sans Mono',
+ 'Bitstream Vera Sans Mono', monospace;
+ font-size: 0.95em;
+ line-height: 120%;
+ padding: 0.5em;
+ border: 1px solid #ccc;
+ background-color: #f8f8f8;
+}
+
+pre a {
+ color: inherit;
+ text-decoration: underline;
+}
+
+td.linenos pre {
+ padding: 0.5em 0;
+}
+
+div.quotebar {
+ background-color: #f8f8f8;
+ max-width: 250px;
+ float: right;
+ padding: 2px 7px;
+ border: 1px solid #ccc;
+}
+
+div.topic {
+ background-color: #f8f8f8;
+}
+
+table {
+ border-collapse: collapse;
+ margin: 0 -0.5em 0 -0.5em;
+}
+
+table td, table th {
+ padding: 0.2em 0.5em 0.2em 0.5em;
+}
+
+div.admonition, div.warning {
+ font-size: 0.9em;
+ margin: 1em 0 1em 0;
+ border: 1px solid #86989B;
+ background-color: #f7f7f7;
+ padding: 0;
+}
+
+div.admonition p, div.warning p {
+ margin: 0.5em 1em 0.5em 1em;
+ padding: 0;
+}
+
+div.admonition pre, div.warning pre {
+ margin: 0.4em 1em 0.4em 1em;
+}
+
+div.admonition p.admonition-title,
+div.warning p.admonition-title {
+ margin: 0;
+ padding: 0.1em 0 0.1em 0.5em;
+ color: white;
+ border-bottom: 1px solid #86989B;
+ font-weight: bold;
+ background-color: #AFC1C4;
+}
+
+div.warning {
+ border: 1px solid #940000;
+}
+
+div.warning p.admonition-title {
+ background-color: #CF0000;
+ border-bottom-color: #940000;
+}
+
+div.admonition ul, div.admonition ol,
+div.warning ul, div.warning ol {
+ margin: 0.1em 0.5em 0.5em 3em;
+ padding: 0;
+}
+
+div.versioninfo {
+ margin: 1em 0 0 0;
+ border: 1px solid #ccc;
+ background-color: #DDEAF0;
+ padding: 8px;
+ line-height: 1.3em;
+ font-size: 0.9em;
+}
+
+.viewcode-back {
+ font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
+ 'Verdana', sans-serif;
+}
+
+div.viewcode-block:target {
+ background-color: #f4debf;
+ border-top: 1px solid #ac9;
+ border-bottom: 1px solid #ac9;
+}
diff --git a/openmp/docs/_themes/llvm-theme/static/logo.png b/openmp/docs/_themes/llvm-theme/static/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@ v documentation".
+# html_title = 'OpenMP Parallel Programming API'
+
+# A shorter title for the navigation bar. Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+#html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+html_last_updated_fmt = '%Y-%m-%d'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_domain_indices = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+#html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+#html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a tag referring to it. The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = None
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'OpenMPdoc'
+
+# If true, the reST sources are included in the HTML build as
+# _sources/name. The default is True.
+html_copy_source = False
+
+# -- Options for LaTeX output --------------------------------------------------
+
+latex_elements = {
+# The paper size ('letterpaper' or 'a4paper').
+#'papersize': 'letterpaper',
+
+# The font size ('10pt', '11pt' or '12pt').
+#'pointsize': '10pt',
+
+# Additional stuff for the LaTeX preamble.
+#'preamble': '',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, documentclass [howto/manual]).
+latex_documents = [
+ ('index', 'OpenMP.tex', u'LLVM OpenMP Documentation',
+ u'LLVM OpenMP', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# If true, show page references after internal links.
+#latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+#latex_show_urls = False
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_domain_indices = True
+
+
+# -- Options for manual page output --------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+# man_pages = [('man/lldb', 'lldb', u'LLDB Documentation', [u'LLVM project'], 1)]
+
+# If true, show URL addresses after external links.
+#man_show_urls = False
+
+
+# -- Options for Texinfo output ------------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+# dir menu entry, description, category)
+texinfo_documents = [
+ ('index', 'LLVM OpenMP', u'LLVM OpenMP Documentation',
+ u'LLVM OpenMP', 'LLVM OpenMP', 'One line description of project.',
+ 'Miscellaneous'),
+]
+
+# Documents to append as an appendix to all manuals.
+#texinfo_appendices = []
+
+# If false, no module index is generated.
+#texinfo_domain_indices = True
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+#texinfo_show_urls = 'footnote'
diff --git a/openmp/docs/index.rst b/openmp/docs/index.rst
new file mode 100644
--- /dev/null
+++ b/openmp/docs/index.rst
@@ -0,0 +1,25 @@
+About
+=====
+
+Support for the OpenMP parallel programming API in the LLVM compiler
+infrastructure. Here you will find helpful links to OpenMP library documentation
+and other resources.
+
+LLVM OpenMP Design & Overview
+=============================
+
+This describes the design of the `LLVM OpenMP Runtime Library`_
+
+.. _`LLVM OpenMP Runtime Library`: https://openmp.llvm.org/Reference.pdf
+
+Release Notes
+=============
+
+Current OpenMP release notes.
+
+.. toctree::
+ :hidden:
+
+ ReleaseNotes
+
+* :doc:`ReleaseNotes`