DirectXShaderCompiler/docs
Nathan Gauër 40d5e1fb9d
hlsl, spirv: allow use of ffinit-math-only (#4955)
* hlsl, spirv: allow use of ffinit-math-only

This options should match GCC's & Clang's behavior:

From GCC documention:
```
Allow optimizations for floating-point arithmetic that assume that arguments and results are not NaNs or +-Infs.

This option is not turned on by any -O option since it can result in incorrect output for programs that depend on an exact implementation of IEEE or ISO rules/specifications for math functions. It may, however, yield faster code for programs that do not require the guarantees of these specifications.

The default is -fno-finite-math-only.
```

This commit allows the flag to be used again, and makes SPIR-V min/max
intrinsics use FMin/FMax instead of NMin/NMax when enabled.

Fixes #4954

Signed-off-by: Nathan Gauër <brioche@google.com>
Co-authored-by: Laura Hermanns <laura.hermanns@epicgames.com>
2023-02-09 18:40:00 +01:00
..
CommandGuide first commit 2016-12-28 11:52:27 -08:00
Frontend first commit 2016-12-28 11:52:27 -08:00
TableGen first commit 2016-12-28 11:52:27 -08:00
_static first commit 2016-12-28 11:52:27 -08:00
_templates first commit 2016-12-28 11:52:27 -08:00
_themes/dxc-theme first commit 2016-12-28 11:52:27 -08:00
AliasAnalysis.rst first commit 2016-12-28 11:52:27 -08:00
Atomics.rst first commit 2016-12-28 11:52:27 -08:00
BitCodeFormat.rst first commit 2016-12-28 11:52:27 -08:00
BitSets.rst first commit 2016-12-28 11:52:27 -08:00
BlockFrequencyTerminology.rst first commit 2016-12-28 11:52:27 -08:00
BranchWeightMetadata.rst first commit 2016-12-28 11:52:27 -08:00
BuildingAndTestingDXC.rst [Docs] Add new docs on unified build workflow (#4890) 2023-01-03 10:03:12 -06:00
CMake.rst first commit 2016-12-28 11:52:27 -08:00
CMakeLists.txt first commit 2016-12-28 11:52:27 -08:00
CodeGenerator.rst first commit 2016-12-28 11:52:27 -08:00
CodingStandards.rst fixes #37 - License cleanup. 2017-01-27 16:48:08 -08:00
CommandLine.rst first commit 2016-12-28 11:52:27 -08:00
CoverageMappingFormat.rst first commit 2016-12-28 11:52:27 -08:00
DXIL.rst Validate no gaps in UAV store writemask (#4495) 2022-06-03 10:39:00 -07:00
Dummy.html first commit 2016-12-28 11:52:27 -08:00
DxcOnUnix.rst Enable build for dxa/dxl/dxopt/dxr/dxv on linux (#4895) 2023-01-09 15:10:56 -08:00
ExceptionHandling.rst first commit 2016-12-28 11:52:27 -08:00
ExtendingLLVM.rst first commit 2016-12-28 11:52:27 -08:00
FaultMaps.rst first commit 2016-12-28 11:52:27 -08:00
GetElementPtr.rst first commit 2016-12-28 11:52:27 -08:00
HLSLChanges.rst first commit 2016-12-28 11:52:27 -08:00
HowToSetUpLLVMStyleRTTI.rst first commit 2016-12-28 11:52:27 -08:00
HowToUseAttributes.rst first commit 2016-12-28 11:52:27 -08:00
HowToUseInstrMappings.rst first commit 2016-12-28 11:52:27 -08:00
InAlloca.rst first commit 2016-12-28 11:52:27 -08:00
LLVMBuild.rst first commit 2016-12-28 11:52:27 -08:00
LLVMBuild.txt Revert license text in banner comments to original llvm verbage (#33) 2017-01-24 17:54:00 -08:00
LangRef.rst first commit 2016-12-28 11:52:27 -08:00
Lexicon.rst first commit 2016-12-28 11:52:27 -08:00
LibFuzzer.rst first commit 2016-12-28 11:52:27 -08:00
LinkTimeOptimization.rst first commit 2016-12-28 11:52:27 -08:00
Makefile.sphinx first commit 2016-12-28 11:52:27 -08:00
MarkedUpDisassembly.rst first commit 2016-12-28 11:52:27 -08:00
MergeFunctions.rst first commit 2016-12-28 11:52:27 -08:00
Passes.rst first commit 2016-12-28 11:52:27 -08:00
ProgrammersManual.rst first commit 2016-12-28 11:52:27 -08:00
README.txt first commit 2016-12-28 11:52:27 -08:00
SPIR-V.rst hlsl, spirv: allow use of ffinit-math-only (#4955) 2023-02-09 18:40:00 +01:00
SPIRV-Cookbook.rst Rename master branch to main (#4461) 2022-05-16 15:00:19 -07:00
SourceLevelDebugging.rst Debug name part implementation (#264) 2017-05-09 18:32:48 -07:00
SourceLevelDebuggingHLSL.rst Debug name part implementation (#264) 2017-05-09 18:32:48 -07:00
SystemLibrary.rst first commit 2016-12-28 11:52:27 -08:00
Vectorizers.rst first commit 2016-12-28 11:52:27 -08:00
WritingAnLLVMBackend.rst first commit 2016-12-28 11:52:27 -08:00
WritingAnLLVMPass.rst first commit 2016-12-28 11:52:27 -08:00
YamlIO.rst first commit 2016-12-28 11:52:27 -08:00
conf.py first commit 2016-12-28 11:52:27 -08:00
index.rst Debug name part implementation (#264) 2017-05-09 18:32:48 -07:00
make.bat first commit 2016-12-28 11:52:27 -08:00

README.txt

LLVM Documentation
==================

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 <http://llvm.org/docs/> 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 <http://sphinx-doc.org/> and then do:

    cd docs/
    make -f Makefile.sphinx
    $BROWSER _build/html/index.html

The mapping between reStructuredText files and generated documentation is
`docs/Foo.rst` <-> `_build/html/Foo.html` <-> `http://llvm.org/docs/Foo.html`.

If you are interested in writing new documentation, you will want to read
`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 `_build/man/`.

    cd docs/
    make -f Makefile.sphinx man
    man -l _build/man/FileCheck.1

The correspondence between .rst files and man pages is
`docs/CommandGuide/Foo.rst` <-> `_build/man/Foo.1`.
These .rst files are also included during HTML generation so they are also
viewable online (as noted above) at e.g.
`http://llvm.org/docs/CommandGuide/Foo.html`.

Checking links
==============

The reachibility of external links in the documentation can be checked by
running:

    cd docs/
    make -f Makefile.sphinx linkcheck