Skip to content

Commit 8dfb4b1

Browse files
authored
Merge pull request #46 from schweitzpgi/release_70
Release 70 - merge LLVM changes from release_60 branch
2 parents cd197f3 + a554fe5 commit 8dfb4b1

37 files changed

+1657
-40
lines changed

docs/ReleaseNotes.rst

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ Non-comprehensive list of changes in this release
2727
* The Windows installer no longer includes a Visual Studio integration.
2828
Instead, a new
2929
`LLVM Compiler Toolchain Visual Studio extension <https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.llvm-toolchain>`_
30-
is available on the Visual Studio Marketplace. The new integration includes
31-
support for Visual Studio 2017.
30+
is available on the Visual Studio Marketplace. The new integration
31+
supports Visual Studio 2017.
3232

3333
* Libraries have been renamed from 7.0 to 7. This change also impacts
3434
downstream libraries like lldb.
@@ -116,6 +116,8 @@ Non-comprehensive list of changes in this release
116116
* The :program:`opt` tool now supports the ``-load-pass-plugin`` option for
117117
loading pass plugins for the new PassManager.
118118

119+
* Support for profiling JITed code with perf.
120+
119121

120122
Changes to the LLVM IR
121123
----------------------
@@ -134,7 +136,7 @@ Changes to the AArch64 Target
134136
* The ``.inst`` assembler directive is now usable on both COFF and Mach-O
135137
targets, in addition to ELF.
136138

137-
* Support for most remaining COFF relocations have been added.
139+
* Support for most remaining COFF relocations has been added.
138140

139141
* Support for TLS on Windows has been added.
140142

@@ -277,6 +279,9 @@ Changes to the C API
277279
interface was made a deprecated no-op in LLVM 5. Use
278280
``LLVMAddSLPVectorizePass`` instead to get the supported SLP vectorizer.
279281

282+
* Expanded the OrcJIT APIs so they can register event listeners like debuggers
283+
and profilers.
284+
280285
Changes to the DAG infrastructure
281286
---------------------------------
282287
* ``ADDC``/``ADDE``/``SUBC``/``SUBE`` are now deprecated and will default to expand. Backends
@@ -291,6 +296,22 @@ Changes to the DAG infrastructure
291296
changes to backends that directly access ``PatFrag`` members.
292297

293298

299+
External Open Source Projects Using LLVM 7
300+
==========================================
301+
302+
Zig Programming Language
303+
------------------------
304+
305+
`Zig <https://ziglang.org>`_ is an open-source programming language designed
306+
for robustness, optimality, and clarity. Zig is an alternative to C, providing
307+
high level features such as generics, compile time function execution, partial
308+
evaluation, and LLVM-based coroutines, while exposing low level LLVM IR
309+
features such as aliases and intrinsics. Zig uses Clang to provide automatic
310+
import of .h symbols - even inline functions and macros. Zig uses LLD combined
311+
with lazily building compiler-rt to provide out-of-the-box cross-compiling for
312+
all supported targets.
313+
314+
294315
Additional Information
295316
======================
296317

docs/index.rst

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
Overview
22
========
33

4-
.. warning::
5-
6-
If you are using a released version of LLVM, see `the download page
7-
<http://llvm.org/releases/>`_ to find your documentation.
8-
94
The LLVM compiler infrastructure supports a wide range of projects, from
105
industrial strength compilers to specialized JIT applications to small
116
research projects.

include/llvm/Analysis/TargetLibraryInfo.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,8 @@ class TargetLibraryInfoImpl {
8787
enum VectorLibrary {
8888
NoLibrary, // Don't use any vector library.
8989
Accelerate, // Use Accelerate framework.
90-
SVML // Intel short vector math library.
90+
SVML, // Intel short vector math library.
91+
PGMATH // PGI math library.
9192
};
9293

9394
TargetLibraryInfoImpl();

include/llvm/Bitcode/LLVMBitCodes.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,9 @@ enum MetadataCodes {
311311
METADATA_INDEX_OFFSET = 38, // [offset]
312312
METADATA_INDEX = 39, // [bitpos]
313313
METADATA_LABEL = 40, // [distinct, scope, name, file, line]
314+
METADATA_STRING_TYPE = 41, // [distinct, name, size, align, ...]
315+
METADATA_FORTRAN_ARRAY_TYPE = 42, // [distinct, name, [bounds ...], ...]
316+
METADATA_FORTRAN_SUBRANGE = 43, // [distinct, lbound, lbnde, ubound, ubnde]
314317
};
315318

316319
// The constants block (CONSTANTS_BLOCK_ID) describes emission for each

include/llvm/IR/DIBuilder.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,12 @@ namespace llvm {
192192
DIBasicType *createBasicType(StringRef Name, uint64_t SizeInBits,
193193
unsigned Encoding);
194194

195+
/// Create debugging information entry for a string
196+
/// type.
197+
/// \param Name Type name.
198+
/// \param SizeInBits Size of the type.
199+
DIStringType *createStringType(StringRef Name, uint64_t SizeInBits);
200+
195201
/// Create debugging information entry for a qualified
196202
/// type, e.g. 'const int'.
197203
/// \param Tag Tag identifing type, e.g. dwarf::TAG_volatile_type
@@ -479,6 +485,14 @@ namespace llvm {
479485
DICompositeType *createArrayType(uint64_t Size, uint32_t AlignInBits,
480486
DIType *Ty, DINodeArray Subscripts);
481487

488+
/// Create debugging information entry for a Fortran array.
489+
/// \param Size Array size.
490+
/// \param AlignInBits Alignment.
491+
/// \param Ty Element type.
492+
/// \param Subscripts Subscripts.
493+
DIFortranArrayType *createFortranArrayType(
494+
uint64_t Size, uint32_t AlignInBits, DIType *Ty, DINodeArray Subs);
495+
482496
/// Create debugging information entry for a vector type.
483497
/// \param Size Array size.
484498
/// \param AlignInBits Alignment.
@@ -562,6 +576,12 @@ namespace llvm {
562576
DISubrange *getOrCreateSubrange(int64_t Lo, int64_t Count);
563577
DISubrange *getOrCreateSubrange(int64_t Lo, Metadata *CountNode);
564578

579+
/// Create a descriptor for a value range. This
580+
/// implicitly uniques the values returned.
581+
DIFortranSubrange *getOrCreateFortranSubrange(
582+
int64_t CLBound, int64_t CUBound, bool NoUBound, Metadata *Lbound,
583+
Metadata * Lbndexp, Metadata *Ubound, Metadata * Ubndexp);
584+
565585
/// Create a new descriptor for the specified variable.
566586
/// \param Context Variable scope.
567587
/// \param Name Name of the variable.

include/llvm/IR/DebugInfoFlags.def

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ HANDLE_DI_FLAG((1 << 23), TypePassByReference)
4848
HANDLE_DI_FLAG((1 << 24), FixedEnum)
4949
HANDLE_DI_FLAG((1 << 25), Thunk)
5050
HANDLE_DI_FLAG((1 << 26), Trivial)
51+
HANDLE_DI_FLAG((1 << 27), Pure)
52+
HANDLE_DI_FLAG((1 << 28), Elemental)
53+
HANDLE_DI_FLAG((1 << 29), Recursive)
5154

5255
// To avoid needing a dedicated value for IndirectVirtualBase, we use
5356
// the bitwise or of Virtual and FwdDecl, which does not otherwise
@@ -57,7 +60,7 @@ HANDLE_DI_FLAG((1 << 2) | (1 << 5), IndirectVirtualBase)
5760
#ifdef DI_FLAG_LARGEST_NEEDED
5861
// intended to be used with ADT/BitmaskEnum.h
5962
// NOTE: always must be equal to largest flag, check this when adding new flag
60-
HANDLE_DI_FLAG((1 << 26), Largest)
63+
HANDLE_DI_FLAG((1 << 29), Largest)
6164
#undef DI_FLAG_LARGEST_NEEDED
6265
#endif
6366

0 commit comments

Comments
 (0)