[TableGen] Pass result of std::unique to vector::erase instead of calculating a size and calling resize.

llvm-svn: 328031
This commit is contained in:
Craig Topper 2018-03-20 20:24:10 +00:00
parent 858a7dd6d7
commit b5ed275025
6 changed files with 99 additions and 3 deletions

View File

@ -1,4 +1,4 @@
=============================
============================
User Guide for AMDGPU Backend
=============================

View File

@ -2656,3 +2656,9 @@ The AMDGPU backend
The AMDGPU code generator lives in the ``lib/Target/AMDGPU``
directory. This code generator is capable of targeting a variety of
AMD GPU processors. Refer to :doc:`AMDGPUUsage` for more information.
The X86 backend
------------------
The X86 code generator lives in the ``lib/Target/X86``
directory. Refer to :doc:`X86Usage` for more information.

View File

@ -99,6 +99,8 @@ X86
* `X86 and X86-64 SysV psABI <https://github.com/hjl-tools/x86-psABI/wiki/X86-psABI>`_
* `Calling conventions for different C++ compilers and operating systems <http://www.agner.org/optimize/calling_conventions.pdf>`_
Refer to :doc:`X86Usage` for additional documentation.
XCore
-----

85
llvm/docs/X86Usage.rst Normal file
View File

@ -0,0 +1,85 @@
=============================
User Guide for X86 Backend
=============================
.. contents::
:local:
Introduction
============
The X86 backend provides ISA code generation for X86 CPUs. It lives in the
``lib/Target/X86`` directory.
LLVM
====
.. _x86-processors
Processors
----------
Use the ``clang -march=<Processor>`` option to specify the X86 processor.
.. table:: X86 processors
:name: x86-processor-table
================== ===================
Processor Alternative
Name
``i386``
``i486``
``i586``
``pentium``
``pentium-mmx``
``i686``
``pentiumpro``
``pentium2``
``pentium3`` - ``pentium3m``
``pentium-m``
``pentium4`` - ``pentium4m``
``lakemont``
``yonah``
``prescott``
``nocona``
``core2``
``penryn``
``bonnell`` - ``atom``
``silvermont`` - ``slm``
``goldmont``
``nehalem`` - ``corei7``
``westmere``
``sandybridge`` - ``corei7-avx``
``ivybridge`` - ``core-avx-i``
``haswell`` - ``core-avx2``
``broadwell`` - ``skylake``
``knl``
``knm``
``skylake-avx512`` - ``skx``
``cannonlake``
``icelake``
``k6``
``k6-2``
``k6-3``
``athlon`` - ``athlon-tbird``
``athlon-4`` - ``athlon-xp``
- ``athlon-mp``
``k8`` - ``opteron``
- ``athlon64``
- ``athlon-fx``
``k8-sse3`` - ``opteron-sse3``
- ``athlon64-sse3``
``amdfam10h`` - ``barcelona``
``btver1``
``btver2``
``bdver1``
``bdver2``
``bdver3``
``bdver4``
``znver1``
``geode``
``winchip-c6``
``winchip2``
``c3``
``c3-2``
================== ===================

View File

@ -276,6 +276,7 @@ For API clients and LLVM developers.
HowToUseAttributes
NVPTXUsage
AMDGPUUsage
X86Usage
StackMaps
InAlloca
BigEndianNEON
@ -380,6 +381,9 @@ For API clients and LLVM developers.
:doc:`AMDGPUUsage`
This document describes using the AMDGPU backend to compile GPU kernels.
:doc:`X86Usage`
This document describes using the X86 backend.
:doc:`StackMaps`
LLVM support for mapping instruction addresses to the location of
values and allowing code to be patched.

View File

@ -1398,8 +1398,7 @@ static void inferFromTransitions(ArrayRef<PredTransition> LastTransitions,
PI = I->PredTerm.begin(), PE = I->PredTerm.end(); PI != PE; ++PI) {
Preds.push_back(PI->Predicate);
}
RecIter PredsEnd = std::unique(Preds.begin(), Preds.end());
Preds.resize(PredsEnd - Preds.begin());
Preds.erase(std::unique(Preds.begin(), Preds.end()), Preds.end());
SCTrans.PredTerm = Preds;
SchedModels.getSchedClass(FromClassIdx).Transitions.push_back(SCTrans);
}