Kai Nacke
1036edc266
Merge branch 'master' into merge-2.067
2015-05-17 13:06:46 +02:00
Kai Nacke
76f543d0a7
Fix another sprintf warning
2015-05-16 18:56:38 +02:00
Kai Nacke
79699c3261
CompoundAsmStatement checks for @safe.
...
Fixes failure in fail_compilation/deprecate12979.d
2015-04-10 13:16:15 +02:00
kai
0551f613e4
Remove last traces of AsmBlockStatement
2015-03-01 17:33:08 +01:00
kai
f61327c149
Replace AsmBlockStatement with CompoundAsmStatement.
2015-03-01 16:40:44 +01:00
kai
a65f001356
Remove now unused function DtoAggrPairSwap().
...
The function was only used in the old ABI implementation.
2015-02-25 07:52:06 +01:00
David Nadlinger
e4aa92deb3
Get rid of more superfluous casts with DMD arrays.
...
There are still a few more left.
2014-11-16 08:00:17 +01:00
Alexey Prokhin
ac2524d129
Remove old unused declarations
2014-10-05 16:55:23 +04:00
Alexey Prokhin
a0b9f95869
There is no real need in FuncDeclaration::labmap
2014-10-05 16:08:35 +04:00
Alexey Prokhin
d9189acbc4
Move toElem/toConstElem to visitors
2014-08-27 16:22:02 +04:00
Alexey Prokhin
76dec46df5
WIP: merge dmdfe 2.066
2014-08-22 16:01:28 +04:00
Alexey Prokhin
e0b9048998
Rename 'enclosingFinally' to the original 'tf' to minimize differences with mainstream
2014-07-11 18:06:58 +02:00
kai
2b6dbb03f4
Add IF_LOG to more logging statements.
...
Evaluating arguments which call toChars() or toPrettyChars() are much more expensive then checking Logger::enabled().
2014-06-26 06:54:38 +02: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
c28c7fb134
Introduce a debug info builder.
...
Moves all code from todebug into a new class.
Also caches the compilation unit in order to fix a LLVM 3.4 compile error.
2013-07-29 00:04:08 +02:00
David Nadlinger
292caa1438
Merge the 2.063 frontend.
2013-06-12 20:16:37 +02:00
David Nadlinger
5b5ad8e0f7
Add some no-op virtual destructors to silence GCC warning.
2013-06-12 20:16:05 +02:00
David Nadlinger
5742a0219c
Fix inline asm labels in template functions.
...
This is a giant kludge to avoid a redesign of the inline asm
handling code. I'd be glad if somebody came up with a better
solution.
GitHub: Fixes #340 .
2013-05-11 21:01:24 +02:00
David Nadlinger
8b9deecf34
Remove dead code.
2013-05-11 20:12:25 +02:00
David Nadlinger
bc09ceae18
Remove useless log delimiters, we do have log scopes.
2013-03-17 02:00:42 +01:00
kai
1e4a8fffc2
Remove DMDV1 and DMDV2.
2013-03-06 10:20:24 +01:00
David Nadlinger
5f3ba41574
Removed redundant global.params.cpu field.
...
Now that we have global.params.targetTriple, the information
is only duplicated.
2013-02-07 17:36:54 +01:00
David Nadlinger
8ff3a8060a
Use llvm_unreachable instead of assert(0).
...
Also removed some unused functions.
2013-02-07 03:38:15 +01:00
Martin
62cb04f6f6
Merged x86 and x86_64 assembly parsers.
2013-01-27 15:31:26 +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
David Nadlinger
89809fdde3
Cleanup: Silence another "maybe-undefined" warning.
...
Also makes the assert in line 775 actually work.
2012-12-20 02:10:32 +01:00
David Nadlinger
59a4a02e49
Cleanup: Avoid signed/unsigned comparisons.
...
The ones ones left are for DMD-defined constants.
2012-12-20 01:21:09 +01:00
David Nadlinger
0cd78dd579
Cleanup: Clang warning fixes.
...
No warnings left on a '-Wall' build except for a single tautological
compare in gen/asm-x86-32.h, which indeed seems like a bug.
2012-12-20 01:00:55 +01:00
David Nadlinger
9458911839
Added LLVM-style license headers to all our files.
2012-12-16 17:19:14 +01:00
kai
940d6e907f
Take advantage of Triple and TargetData.
...
A lot of system specific knowledge is already present in LLVM. This is used to populate several fields in global.params instead of hard coded values in main(). Ensures that the frontend and LLVM have always the same values.
2012-09-16 19:50:21 +02:00
David Nadlinger
6fea7358dc
Fixed several asm-related error message formats.
2012-09-07 03:51:32 +02:00
kai
2dbee75523
Prefer C++-style casts.
...
This is based on Item 2 of "More Effective C++". In general, the C++ cast operators are more expressive and easy to find,
e.g. by grep. Using const_cast also shuts up some compiler warnings.
2012-08-02 19:55:29 +02:00
Alexey Prokhin
e74e55df89
Merge 2.058beta
2012-02-15 13:23:16 +04:00
kai
f9201e8352
Merge 1.072
2012-02-02 03:13:27 +01:00
David Nadlinger
3916835380
Merge remote-tracking branch 'AlexeyProkhin/master' into merge-3.0
...
Conflicts:
CMakeLists.txt
druntime
runtime/CMakeLists.txt
2011-12-04 18:38:09 +01:00
David Nadlinger
fe19ee84f5
Merge branch 'llvm3.0' into merge-3.0
...
Conflicts:
gen/configfile.cpp
2011-12-04 18:16:36 +01:00
David Nadlinger
d0ea856024
Emit all D inline asm labels as local labels.
...
On OS X, there is an actual significance to the distinction, which before lead e.g. to exception throwing in the below example being broken:
---
import core.exception;
void main() {
asm {
jmp Lfoo;
Lfoo:
;
}
throw cast(OutOfMemoryError)cast(void*)OutOfMemoryError.classinfo.init;
assert(0);
}
---
2011-12-04 18:13:33 +01:00
Alexey Prokhin
91f4e5d015
Added emission of dwarf lexical blocks.
...
Also, dropped support for DISABLE_DEBUG_INFO definition.
2011-12-04 15:34:35 +04:00
kai
a5b3dd29b5
Fixes 2 kinds of warnings.
...
1) The last parameter of getGetElementPtr() has type bool. In some instances, a 2 is used as parameter. This is converted to true.
2) Several loops use int instead of unsigned. This causes warning about signed/unsigned mismatch.
Curiously, only Visual C++ complains about this. Nevertheless I think that the warnings should be fixed.
2011-11-23 19:01:04 +01:00
David Nadlinger
abd1d160f4
Tabs->spaces.
2011-11-14 20:10:45 +01:00
Alexey Prokhin
629f13929e
WIP: port to llvm 3.0
2011-10-25 15:43:39 +04:00
Alexey Prokhin
8f4a15c868
Fix ldc1 regressions
2011-09-10 13:24:29 +04:00
Alexey Prokhin
79edefdc37
Fixed compilation of functions that does not have return statement but contain inline asm
2011-07-19 22:22:49 +04:00
Alexey Prokhin
7a31b599cc
Updated to dmdfe 2.054
2011-07-19 19:20:38 +04:00
Alexey Prokhin
c5e9784863
Updated to dmdfe 2.051
2011-01-05 18:21:40 +03:00
Alexey Prokhin
3ceb476d32
Inline assembler is not allowed in @safe functions
2011-01-04 19:18:53 +03:00
Tomas Lindquist Olsen
1fac40d2bd
Update to work with LLVM 2.7.
...
Removed use of dyn_cast, llvm no compiles
without exceptions and rtti by
default. We do need exceptions for the libconfig stuff, but rtti isn't
necessary (anymore).
Debug info needs to be rewritten, as in LLVM 2.7 the format has
completely changed. To have something to look at while rewriting, the
old code has been wrapped inside #ifndef DISABLE_DEBUG_INFO , this means
that you have to define this to compile at the moment.
Updated tango 0.99.9 patch to include updated EH runtime code, which is
needed for LLVM 2.7 as well.
2010-05-19 12:42:32 +02:00
Benjamin Kramer
c220dcac05
IntegerType is now contextifed.
...
Requires llvm >= 78969. resistor says this will be the last context API change :)
2009-08-14 00:39:18 +02:00
Benjamin Kramer
66101517d7
LLVMContext changes up to r77366
2009-07-30 15:25:10 +02:00
Benjamin Kramer
d7049de966
More factory methods moved to LLVMContext
2009-07-15 18:09:41 +02:00