pyos
accbbdb9e3
Add a setting that disables jit-compilation
2018-05-03 00:48:20 +03:00
pyos
900b92f744
Merge API changes from upstream
2018-05-01 22:52:33 +03:00
pyos
27f12eeaa3
Merge branch 'master' of https://github.com/yandex/ClickHouse into llvm-jit
2018-05-01 22:51:37 +03:00
alexey-milovidov
52c58d3a82
Merge pull request #2308 from ilyshnikova/master
...
Without std::move
2018-05-01 12:35:57 -07:00
Tsarkova Anastasia
3a36569439
Without std::move
2018-05-01 21:34:42 +02:00
alexey-milovidov
81161be755
Merge pull request #2307 from ilyshnikova/master
...
Without std::move
2018-05-01 12:32:37 -07:00
Tsarkova Anastasia
8245dc3f6a
Without std::move
2018-05-01 21:31:01 +02:00
alexey-milovidov
cb221cee29
Merge pull request #2306 from ilyshnikova/master
...
struct instead of class
2018-05-01 12:20:03 -07:00
Tsarkova Anastasia
ba901ebc3f
struct instead of class
2018-05-01 21:18:13 +02:00
alexey-milovidov
9be89bd0d4
Merge pull request #2272 from ilyshnikova/master
...
Conditional computations.
2018-05-01 12:08:46 -07:00
Tsarkova Anastasia
7c9741ed5b
Fix style.
2018-05-01 15:31:38 +02:00
Tsarkova Anastasia
fe0753a128
Minor fixes, adding test case.
2018-05-01 15:24:43 +02:00
pyos
7483ed24f0
Implement jit for logic functions
2018-05-01 14:43:15 +03:00
Tsarkova Anastasia
210a389592
Getting rid of measure action, other small fixes applied.
2018-04-30 21:33:32 +02:00
pyos
e4ace21f24
Remove laziness on nullable arguments from default implementation
...
It breaks semantics, sadly.
2018-04-30 15:35:32 +03:00
pyos
4970b06b57
Remove outdated comments
2018-04-30 02:21:45 +03:00
pyos
039c377a7a
Work around a bug in llvm::IRBuilder::CreateMaxNum
2018-04-30 02:07:39 +03:00
pyos
059bbcacca
Implement jit for most arithmetic functions, remove the test function
2018-04-30 01:43:02 +03:00
pyos
7529aa55a4
Fix a bug that limited inlining depth at 2
2018-04-30 01:23:27 +03:00
Tsarkova Anastasia
a99ff6f380
Fix tests.
2018-04-29 23:48:33 +02:00
Tsarkova Anastasia
9286c98789
Fix build.
2018-04-29 23:13:01 +02:00
pyos
b4c7bee12b
Merge branch 'master' of https://github.com/yandex/ClickHouse into llvm-jit
2018-04-29 23:22:18 +03:00
pyos
72f2fea837
Extract the code that compiles a single IFunctionBase from LLVMFunction
2018-04-29 21:03:58 +03:00
pyos
1be009d485
Remove getDefaultNativeValue in favor of llvm::Constant::getNullValue
2018-04-29 20:32:30 +03:00
Tsarkova Anastasia
4bce6035b1
Merge branch 'master' into master
2018-04-29 18:02:34 +02:00
Tsarkova Anastasia
2c96b1c684
Add comments. Change projection restoring function.
2018-04-29 15:49:58 +02:00
pyos
01aaf99d75
Use C++17 fold expressions to simplify FunctionsArithmetic.h
2018-04-29 16:04:28 +03:00
pyos
fb577b1049
Hide the whole JIT API behind #if USE_EMBEDDED_COMPILER
...
Kind ugly, but at least the conditionals are used consistently now.
2018-04-29 13:48:16 +03:00
pyos
4641e2960f
Move ExpressionActions::compileFunctions to ExpressionJIT.cpp.
...
This means ExpressionJIT.h only has to expose one function.
2018-04-29 13:39:01 +03:00
pyos
08345628a2
Support {Date,DateTime,Interval,UUID,FixedString} in compiled functions
2018-04-28 18:55:48 +03:00
pyos
6e05c5ace4
compilePrologue() isn't particularly useful after all.
...
Basically the only thing it can do that compile() can't is create 'alloca'
instructions, which are only needed to get pointers to stack variables.
Given that dynamically-sized allocations aren't possible with this API,
such pointers are probably completely pointless (heh).
2018-04-28 18:11:23 +03:00
pyos
1ffc2a0775
Make LLVMFunction monotonicity computation shorter (and fix a typo-bug)
2018-04-28 17:41:24 +03:00
pyos
a1eb938ed2
Inline nullable number constants into compiled code.
...
Also, protect against some segfaults during compilation by checking
correctness of the type returned by compile().
2018-04-28 17:12:00 +03:00
pyos
ccc895d162
Represent nullable types as pairs instead of pointers.
...
Turns out LLVM has insertvalue & extractvalue for struct in registers. This is
faster than pointers because null checks are now subject to more optimizations.
2018-04-28 14:12:23 +03:00
pyos
5c75342d54
Check nativity of all types *before* calling isCompilable
2018-04-28 01:03:52 +03:00
pyos
979c4d959f
Let jit-compilable functions deal with NULLs themselves.
...
And provide a default implementation of compile() for nullable columns
that actually works and is consistent with execute().
2018-04-28 00:34:27 +03:00
alexey-milovidov
093c054b1f
Merge pull request #2263 from luc1ph3r/arbitrary-csv-delimiter
...
Support an arbitrary CSV delimiter
2018-04-27 13:13:09 -07:00
alexey-milovidov
96e2dfa790
Update SettingsCommon.h
2018-04-27 13:12:26 -07:00
pyos
49b61cd27d
Refactor LLVMFunction to make extending to DataTypeNullable easier
2018-04-27 18:44:38 +03:00
Vitaliy Lyudvichenko
e152f223c9
Fix nodes leak in case of session expiration. [#CLICKHOUSE-2]
2018-04-26 22:46:45 +03:00
pyos
a9e0b6de9f
Use system LLVMConfig.cmake with minor tweaks.
...
Should fix Travis build, finally.
2018-04-26 22:45:39 +03:00
Ivan Zhukov
4094e21be5
Code review
2018-04-26 20:41:43 +03:00
pyos
b4d527ee85
Inline compile-time constants into jitted functions.
2018-04-26 14:30:16 +03:00
pyos
c95f8a669f
Throw in untyped versions of IFunction::{isCompilable,compile}
...
IFunction inherits IFunctionBase for some reason despite not actually knowing
the types, so these two methods make no sense. The versions with DataTypes&
as an argument should be used instead.
2018-04-25 20:07:19 +03:00
pyos
9ae5fe1b6d
Minor style fixes
2018-04-25 18:33:58 +03:00
pyos
854f85dd9b
Put #if USE_EMBEDDED_COMPILER in ExpressionJIT.{cpp,h}
2018-04-25 18:19:22 +03:00
pyos
d59b0d7ec0
Add IColumn::getRawData to fixed-contiguous columns
2018-04-25 18:16:48 +03:00
pyos
6c275c27d0
Remove an unnoticed debug return
2018-04-25 16:44:24 +03:00
pyos
c419d5a1a5
Poison only columns actually used by ARRAY_JOIN and JOIN
2018-04-25 16:01:06 +03:00
pyos
5482282943
Implement informational methods for LLVMFunction
2018-04-25 16:01:06 +03:00