Alexey Zatelepin
6047db7ea2
fix removing failed quorum parts at startup (tryGetChilden actually returns error code, not success flag)
2018-05-07 23:31:28 +03:00
pyos
2d70d9d601
Implement jit for numeric if and multiIf
2018-05-07 23:17:22 +03:00
pyos
1433e6e849
Extract native bool cast; generalize number cast to nullables
2018-05-07 22:21:23 +03:00
Alexey Milovidov
089ef3277f
Removed useless code [#CLICKHOUSE-2]
2018-05-07 19:30:47 +03:00
pyos
cfc41e1a64
Copy changes from LLVM {5,6} CMakeLists to 7
2018-05-07 19:14:00 +03:00
pyos
f070f73220
Merge branch 'master' of https://github.com/yandex/ClickHouse into llvm-jit
...
Conflicts:
debian/.pbuilderrc
2018-05-07 19:11:48 +03:00
pyos
32fd123010
Select an *exact* target machine, not an approximation.
...
Required for enabling advanced features such as AVX and AVX2.
Code mostly copied from LLVM's tools/opt/opt.cpp.
2018-05-07 19:06:13 +03:00
Alexey Milovidov
a611fbd143
Merge branch 'master' of github.com:yandex/ClickHouse into pyos-llvm-jit
2018-05-07 19:00:41 +03:00
proller
398097d24a
Build fixes ( #2323 )
...
* Build fixes
* Fixes
* remove libzookeeper-mt-dev
* fix
* fix
* wrong
* try fix
* fix
* Update CMakeLists.txt
2018-05-07 18:59:52 +03:00
pyos
686c1f73fd
Implement IntExp2Impl::compile
2018-05-07 16:36:07 +03:00
pyos
b08dbf2b22
Remove a redundant target_compile_options
2018-05-07 16:33:07 +03:00
pyos
d4b5c01a1e
Fix addModule check for LLVM < 7
...
It returns `Expected`, so false-y is a failure. (In >= 7 it returns
an `Error`, so truth-y is a failure. Wow, that's confusing.)
2018-05-07 16:04:07 +03:00
pyos
0e09138405
Assume output and one input of LLVMFunction is non-const
2018-05-07 16:03:26 +03:00
Alexey Milovidov
4c1c2dbdff
Merge remote-tracking branch 'origin/master' into pyos-llvm-jit
2018-05-07 13:44:15 +03:00
Alexey Milovidov
01bbf650f8
Build fixes #2277
2018-05-07 11:59:24 +03:00
Alexey Milovidov
147919928d
Better error checks #2277
2018-05-07 09:49:56 +03:00
Alexey Milovidov
d1b4b5c836
Fixed error; added ProfileEvent #2277
2018-05-07 09:23:18 +03:00
Alexey Milovidov
e06223cbb8
Style [#CLICKHOUSE-2]
2018-05-07 05:15:47 +03:00
Alexey Milovidov
b8a6261bbc
Style [#CLICKHOUSE-2]
2018-05-07 05:15:47 +03:00
Alexey Milovidov
a916d2760e
Style [#CLICKHOUSE-2]
2018-05-07 05:15:24 +03:00
Alexey Milovidov
fd0ee5c6b1
Style [#CLICKHOUSE-2]
2018-05-07 05:14:24 +03:00
Alexey Milovidov
02f8757bef
Applied clang-format #2272
2018-05-07 05:09:44 +03:00
Alexey Milovidov
b2edcfaa50
Applied clang-format #2272
2018-05-07 05:09:29 +03:00
Alexey Milovidov
723cc53948
Applied clang-format to some imported code [#CLICKHOUSE-2]
2018-05-07 05:08:38 +03:00
Alexey Milovidov
c4ff517b8e
Fixed style [#CLICKHOUSE-2]
2018-05-07 05:08:38 +03:00
Alexey Milovidov
1dc1ccc1d8
Applied clang-format #2272
2018-05-07 05:08:38 +03:00
Alexey Milovidov
e26abf0ab4
Applied clang-format to some imported code [#CLICKHOUSE-2]
2018-05-07 05:08:38 +03:00
Alexey Milovidov
59bc8e1b48
Applied clang-format to some imported code [#CLICKHOUSE-2]
2018-05-07 05:07:47 +03:00
Alexey Milovidov
619a0dbd8c
Fixed style [#CLICKHOUSE-2]
2018-05-07 05:07:17 +03:00
Alexey Milovidov
90427db854
Applied clang-format #2272
2018-05-07 05:06:55 +03:00
Alexey Milovidov
598c7fddb7
Applied clang-format to some imported code [#CLICKHOUSE-2]
2018-05-07 05:06:00 +03:00
Alexey Milovidov
94369e55d3
Fixed style a bit [#CLICKHOUSE-2]
2018-05-07 05:01:29 +03:00
Alexey Milovidov
956128a67a
Fixed style a bit [#CLICKHOUSE-2]
2018-05-07 05:01:11 +03:00
Alexey Milovidov
a687c90100
Allow to link with LLVM if it was compiled without RTTI #2277
2018-05-07 03:00:12 +03:00
proller
81e2467283
Squashed commit of the following:
...
commit f1c193ea483872fee44e2969fc79a9b111a61d3d
Author: proller <proller@github.com>
Date: Sun May 6 16:28:46 2018 +0300
Clang5 build fix
commit c0ff4234747858dfd7741c90a5c77e9f8d47cd40
Merge: 852e11b
71814a3
Author: proller <proller@github.com>
Date: Sun May 6 16:04:26 2018 +0300
Merge remote-tracking branch 'upstream/master' into fix15
commit 852e11b409
Author: proller <proller@github.com>
Date: Sat May 5 20:15:40 2018 +0300
Try master
commit 2a5cebb5e5
Author: proller <proller@github.com>
Date: Sat May 5 19:34:55 2018 +0300
Try fix contrib/capnproto error with new compilers
commit bbfe581683
Merge: f493474
634ba89
Author: proller <proller@github.com>
Date: Sat May 5 19:25:01 2018 +0300
Merge remote-tracking branch 'upstream/master' into fix15
commit f49347469d
Author: proller <proller@github.com>
Date: Sat May 5 15:31:47 2018 +0300
Build fixes
2018-05-06 16:29:51 +03:00
Alexey Milovidov
71814a33d5
Fixed code #2272
2018-05-06 14:34:31 +03:00
Alexey Milovidov
9da677719c
Fixed code #2272
2018-05-06 14:34:16 +03:00
Alexey Milovidov
daed1ea0dc
Fixed code #2272
2018-05-06 14:33:19 +03:00
Alexey Milovidov
63625c0a30
Fixed code #2272
2018-05-06 14:33:03 +03:00
Alexey Milovidov
ee019183d2
Fixed code #2272
2018-05-06 14:31:14 +03:00
Alexey Milovidov
04d1c8c449
Fixed code #2272
2018-05-06 14:29:17 +03:00
Alexey Milovidov
b580d1c487
Allow to build with clang 7
2018-05-06 14:16:38 +03:00
Alexey Milovidov
6c7f896f9f
Miscellaneous #2277
2018-05-06 13:42:35 +03:00
Alexey Milovidov
69c67b4cd4
Addition to prev. revision #2277
2018-05-06 12:37:16 +03:00
Alexey Milovidov
c4a26764ce
Miscellaneous #2277
2018-05-06 12:32:36 +03:00
Alexey Milovidov
f495d8cfa5
Removed deprecated CMake function #2277
2018-05-06 12:30:35 +03:00
Alexey Milovidov
b1b95454cc
Make warning suppressions more local #2277
2018-05-06 12:29:57 +03:00
Alexey Milovidov
53f03a4909
Merge branch 'llvm-jit' of https://github.com/pyos/ClickHouse into pyos-llvm-jit
2018-05-06 12:22:42 +03:00
Alexey Milovidov
f589149189
Fixed build of embedded compiler with clang 7 [#CLICKHOUSE-2]
2018-05-06 12:04:10 +03:00
Alexey Milovidov
a8deddbc68
Removed useless code [#CLICKHOUSE-2]
2018-05-06 09:52:23 +03:00
Alexey Milovidov
4bc5163b80
Fixed build with clang 7 #2277
2018-05-06 09:35:59 +03:00
Alexey Milovidov
a227a984b5
Fixed warning found by clang 7 [#CLICKHOUSE-2]
2018-05-06 09:29:57 +03:00
Alexey Milovidov
a5dd90c35e
Added a patch for cc1as_main from clang7 #2277
2018-05-06 09:03:36 +03:00
Alexey Milovidov
2ba241b06e
Fixed build of embedded compiler with clang 7 #2277
2018-05-06 09:03:05 +03:00
Alexey Milovidov
a0f1b1f1ee
Whitespace [#CLICKHOUSE-2]
2018-05-06 05:21:59 +03:00
proller
634ba89f90
Build fixes
2018-05-05 15:34:17 +03:00
pyos
88bb2f7c25
Resolve symbols right after compiling.
...
llvm::orc::RTDyldObjectLinkingLayer::findSymbol appears to be non-threadsafe.
2018-05-05 00:38:17 +03:00
proller
7781492624
Fix user name on distributed queries ( #2292 )
...
* Fix user name on distributed queries
* wip
* fix
2018-05-05 00:21:23 +03:00
KochetovNicolai
e0addcdfec
Update ColumnVector.cpp
...
Fixed memset bytes count.
2018-05-03 20:29:53 +03:00
pyos
a286dea2e1
Don't waste time jit-compiling isolated functions.
...
This is already done ahead of time when building the executable.
2018-05-03 16:34:42 +03:00
Vitaliy Lyudvichenko
63cc34d3f6
Fixed incorrect failed OP detection in ZooKeeper. [#CLICKHOUSE-2]
2018-05-03 16:34:19 +03:00
pyos
23bbf632e5
If all inputs to a jitted function are constant, return a constant
2018-05-03 16:33:40 +03:00
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
9412222f55
Add test.
2018-05-01 15:33:39 +02: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