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
kai
9d3dd1f609
Add true value of "isOptimized" to Dwarf debug info.
2015-05-31 21:32:12 +02:00
kai
4db0123bb7
Implement FlagParser using llvm: 🆑 :generic_parser_base.
...
This approach is easier and requires less code. With some template foo
the BoolOrDefaultAdapter is not required.
This solutions applies to previous LLVM versions, too.
2015-04-25 21:47:30 +02:00
kai
66bf03b96b
LLVM 3.7: DataLayoutPass is gone.
...
DataLayout is now non-optional at the module. Therefore
there is no need for a separate DataLayoutPass.
2015-03-06 17:13:00 +01:00
Kevin Brogan
d8f4a2758a
Trigger a travis rebuild
2015-02-17 02:09:14 -08:00
unknown
e56ef8b86e
copy paste error fix
2015-02-16 15:27:19 -08:00
unknown
674b614807
Update of PassManager interface to match the corresponding deprecation in LLVM's trunk for 3.7
2015-02-16 15:11:42 -08:00
kai
197c32e118
LLVM 3.7: Use new TargetMachine.getTargetIRAnalysis() analysis pass.
...
This replaces the TargetMachine.addAnalysisPasses() method.
2015-02-04 07:46:14 +01:00
kai
e3e10a0a86
LLVM 3.7: Add changes for TargetLibraryInfo and DataLayout.
...
The TargetLibraryInfo class is now a wrapper. The real implementation
is TargetLibraryInfoImpl.
The TargetMachine can be asked for the DataLayout (like in all other
supported versions except 3.6)
2015-01-30 08:08:14 +01:00
Kai Nacke
18118d724a
Add support for LLVM 3.7
...
The branch for LLVM 3.7 was created this week.
LLVM trunk is now 3.7.
2015-01-18 21:45:13 +01:00
kai
bef163f559
Fix latest LLVM 3.6 changes
2014-09-19 06:49:34 +02:00
kai
f8a53ab3dc
Merge branch 'merge-2.064' into merge-2.065
...
Conflicts:
runtime/druntime
2014-03-12 18:27:43 +01:00
kai
6442d79b8b
Finally enable the vectorizer (at least in LLVM 3.5).
...
It still requires verification if this works with LLVM 3.4. Problem was the changed
initialisation of passes in LLVM 3.4/3.5.
2014-03-12 17:12:25 +01:00
kai
9156601d76
Add code for the changed DataLayoutPass in LLVM 3.5
2014-03-10 06:54:59 +01:00
kai
2f2fa92df3
Fix includes for LLVM 3.5
2014-03-07 06:40:39 +01:00
Kai Nacke
fe39da53e3
Merge of 2.065.0-b3.
...
The new visitor class is used for IR generation. This removes some modifications from DMD source.
2014-02-10 08:47:25 +01:00
kai
cd9e468201
Enable command line option -disable-simplify-libcalls for LLVM 3.4+.
2014-02-04 18:07:46 +01:00
kai
aaaca39a4e
Enable vectorizer with LLVM 3.4+.
...
The missing initialization code disables the vectorizer.
2014-02-04 07:18:32 +01:00
Kai Nacke
ea9c996dcd
Fix new signature of verifyModule() in LLVM 3.5.
2014-01-19 12:36:42 +01:00
Kai Nacke
c14e065138
Fix the LLVM 3.5 build.
...
Some classes were moved into IR folder.
2014-01-13 17:08:43 +01:00
kai
e6529cfd3d
[experimental] Add sanitizer options to LDC.
...
Add some of the sanitizer passes to LDC. This is not complete (linking must be
done using clang and the right `-fsanitize=` option) and may not be useful at
all.
If it proves to be usefull then a lot of other options (e.g. blacklist) must be
added.
2013-11-05 13:03:52 +01:00
kai
609b362410
Fix the LLVM 3.4 build.
...
The disable-simplify-libcalls is gone.
2013-06-21 23:44:42 +02:00
David Nadlinger
43e27d0dd1
Remove USE_METADATA.
...
It has been on by default for quite some time now.
2013-06-07 02:48:53 +02:00
David Nadlinger
c02b38fe9a
Removed LLVM 3.0 compatibility code.
...
There might be still some pieces left here and there, and
there is certainly code that could be rewritten in a nicer
way with the 3.0 requirement out of the picture.
2013-05-31 20:48:38 +02:00
David Nadlinger
bb5b60e591
Make '-O' equivalent to '-O3'.
...
I have seen it used several times in benchmarks comparing it
to 'gdc -O3' and 'dmd -O -inline' now, so people apparently
expect it to yield the highest available optimization level.
2013-03-17 02:09:54 +01:00
David Nadlinger
0a96aea868
Sort includes according to style guidelines:
...
1. Main include corresponding to .cpp file, if any.
2. DMD and LDC includes.
3. LLVM includes.
4. System includes.
Also updated a few include guards to match the default format.
2013-02-07 21:20:55 +01:00
kai
a11459bc31
"The Great Renaming" continues.
...
More changes to match the renamed files of LLVM 3.3.
2013-01-06 17:17:30 +01:00
kai
272e7b7a55
Follow "The Great Renaming" in LLVM 3.3
...
This time VMCore was renamed to IR. Several top level include
files were moved to new subfolder IR.
2013-01-03 08:52:23 +01:00
David Nadlinger
7be9c5c5c7
dgc2stack: LLVM 3.2 compatibility.
2012-12-20 23:52:25 +01:00
David Nadlinger
9458911839
Added LLVM-style license headers to all our files.
2012-12-16 17:19:14 +01:00
David Nadlinger
2d02270434
Re-enabled codegen optimization on LLVM 3.2.
...
The bug (PR14376) has been fixed in both master and the release branch.
2012-11-24 14:07:17 +01:00
kai
45848d19fc
Remove unused include. This fixes yet another MSVC-related compile problem.
...
Root cause is the `root.h` defines `strtof` which is used in `llvm/Target/TargetLibraryInfo.h` as an enumeration identifier.
2012-11-18 17:52:10 +01:00
David Nadlinger
c558f9caab
Added -disable-simplify-libcalls.
...
-disable-simplify-drtcalls was only intended to disable our
custom druntime call simplication pass for debugging purposes.
The new flag controls C runtime library calls optimizations as
performed by the LLVM pass, just as the corresponding LLVM tool
flags do.
2012-11-06 23:53:59 +01:00
David Nadlinger
03ef134aad
StripExternals only makes sense with GlobalDCE for cleanup afterwards.
2012-11-06 23:48:19 +01:00
David Nadlinger
fbd62f0532
It makes no sense to not inline alwaysinline functions.
2012-11-06 23:47:12 +01:00
David Nadlinger
0647cfb50c
Re-enable inlining by default for -O2 and above.
...
This fixes a bug introduced in 2f78dc686
.
Thanks to Jernej (jerro) for the fix!
2012-11-06 19:40:18 +01:00
David Nadlinger
f95371aeb5
Amend -verify-each description to PassManagerBuilder changes.
...
We can't verify after each pass anymore with PassManagerBuilder, but
-verify-each is a hidden flag mainly useful for debugging our own
passes anyway.
2012-11-04 00:56:36 +01:00
David Nadlinger
dbe5e97d85
Clean up optimizer command line switch descriptions.
2012-11-04 00:56:36 +01:00
David Nadlinger
2f78dc686d
Use llvm::PassManagerBuilder for optimization scheduling.
...
This commit is based on Kai's pull request #157 .
2012-11-04 00:56:36 +01:00
kai
a7c7b514c0
Add changes for LLVM 3.2
...
- The Attributes class was changed again
- TargetData was renamed to DataLayout
Compiles again with LLVm 3.0, 3.1 and trunk(3.2).
2012-10-13 18:54:42 +02:00
kai
ebf5d8b92e
Add missing return statement.
...
This fixes #159 .
2012-09-11 18:05:13 +02:00
kai
0a53cb2ac0
Add -vectorize to the optimizer. This is available starting with LLVM 3.1.
2012-09-08 13:36:31 +02:00
kai
e6a07ffdfe
Several changes to optimizer related code.
...
- New functions codeGenOptLevel() and verifyModule() to remove code duplication
- Hidden option no-verify renamed to disable-verify and moved to optimizer (like opt tool)
- Removed global.params.noVerify
2012-08-16 23:26:52 +02:00
kai
34d595de26
Enable FunctionAttrsPass again.
...
This pass requires an alias analysis, which is also added.
2012-08-11 19:17:18 +02:00
Alexey Prokhin
8c5cf40bb5
Fixed compilation of ldc1
2012-04-22 12:26:25 +04:00
Alexey Prokhin
bca73ec8b9
Merged dmd 2.059beta
2012-04-05 15:30:00 +04:00
Alexey Prokhin
629f13929e
WIP: port to llvm 3.0
2011-10-25 15:43:39 +04:00
David Nadlinger
3e28eecfea
Quick workaround for a LLVM 2.9 crash with higher optimization levels.
...
createFunctionAttrsPass() is a LLVM pass and the crash is deep in LLVM code, maybe something is wrong with the pass manager state.
2011-04-20 20:44:49 +02:00
Kelly Wilson
72ea043124
Recommit klickverbot's patch for LLVM-2.9.
2011-04-20 09:28:37 -06:00
Kelly Wilson
7c81278b9c
Backed out changeset 5253bfbb3890
2011-04-20 00:28:23 -06:00