Martin Kinkelin
834f666ce5
Raise min LLVM version to 6.0 ( #3493 )
2020-07-13 20:42:50 +02:00
Martin Kinkelin
1fdf330346
Refactoring: Remove obsolete AttrBuilder wrapper
...
It was useful when we still supported older LLVM versions, but it's
obsolete now.
2019-03-31 19:18:56 +02:00
Martin Kinkelin
39b46d7b69
Replace old-school header guards by #pragma once
2018-10-20 16:19:46 +02:00
Johan Engelen
ba1ed88b55
Remove magic +1 constant for parameter indexing. ( #2120 )
...
Remove magic +1 constant for parameter indexing.
LLVM may change the indexing offset in the future. See http://llvm.org/viewvc/llvm-project?view=revision&revision=302060
2017-05-20 08:48:48 +02:00
Johan Engelen
9e394e4f99
Fix LLVM 5.0 build. ( #2050 )
...
llvm::AttributeSet was renamed to llvm::AttributeList
2017-03-29 22:26:17 +02:00
Martin
7fc28d8143
Use nonnull
and dereferenceable
attributes for function params
2015-12-14 00:58:25 +01:00
Martin
7c544be9d1
Respect explicit type alignments for LL args passed im- and explicitly by value
...
And for sret args too, except for MSVC targets.
At least on Win64, the sret align attributes lead to ICEs for std.bitmanip
and std.uni (release only), when computing the known alignment in the LLVM
inliner pass:
Assertion failed: I->getParent()->getParent() ==
Q.CxtI->getParent()->getParent() && "Got assumption for the wrong function!",
file C:\LDC\llvm\lib\Analysis\ValueTracking.cpp, line 711
2015-12-04 23:25:06 +01:00
Martin
417e3d242d
Slightly extend AttrSet (attributes set) for improved usability
2015-11-21 15:08:16 +01:00
David Nadlinger
44b0f7b615
driver/gen/ir: clang-format the world
...
This uses the LLVM style, which makes sense for sharing code
with other LLVM projects. The DMD code we use will soon all
be in D anyway.
2015-11-02 00:28:01 +02:00
Martin
90197d6c72
Simplify working with LLVM attributes
2015-11-01 16:19:27 +01:00
Martin
60d676e2a1
Drop support for LLVM < 3.5
...
This allows to clean up the code a little.
2015-10-30 22:24:05 +01:00
Martin
92d9ade0d1
Rework LLVM attributes abstraction.
2015-02-24 13:42:22 +01:00
Martin
c3f2e19c53
Fix AttrSet struct for LLVM 3.1 and 3.2.
...
Use a map instead of a vector as the attribute index may get as
high as 0xFFFFFFFF (LLVM 3.1), apparently for function attributes.
2015-02-23 22:53:09 +01:00
Martin
e7bfb78632
Refactor attributes system.
...
By introducing abstractions for attribute builder and set since they differ
greatly between LLVM 3.1-3.3.
2015-02-23 22:52:11 +01:00