annotate libinterp/template-inst/Array-jit.cc @ 21574:ae4d7dfea337

maint: merge stable to default.
author John W. Eaton <jwe@octave.org>
date Fri, 01 Apr 2016 12:57:49 -0400
parents 40de9f8f23a6 f3f8e1d3e399
children aba2e6293dd8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14903
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
1 /*
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
2
19697
4197fc428c7d maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
3 Copyright (C) 2012-2015 Max Brister
14903
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
4
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
5 This file is part of Octave.
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
6
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
9 Free Software Foundation; either version 3 of the License, or (at your
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
10 option) any later version.
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
11
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
12 Octave is distributed in the hope that it will be useful, but WITHOUT
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
15 for more details.
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
16
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
18 along with Octave; see the file COPYING. If not, see
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
19 <http://www.gnu.org/licenses/>.
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
20
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
21 */
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
22
16768
e2de3c8882be copyright notice fixes
John W. Eaton <jwe@octave.org>
parents: 15865
diff changeset
23 // Author: Max Brister <max@2bass.com>
e2de3c8882be copyright notice fixes
John W. Eaton <jwe@octave.org>
parents: 15865
diff changeset
24
14903
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
25 #ifdef HAVE_CONFIG_H
21301
40de9f8f23a6 Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents: 21200
diff changeset
26 # include "config.h"
14903
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
27 #endif
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
28
14972
457eb974310b src/TEMPLATE-INST/Array-jit.cc: Check for LLVM presence
Max Brister <max@2bass.com>
parents: 14903
diff changeset
29 #ifdef HAVE_LLVM
457eb974310b src/TEMPLATE-INST/Array-jit.cc: Check for LLVM presence
Max Brister <max@2bass.com>
parents: 14903
diff changeset
30
14903
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
31 #include "Array.h"
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
32 #include "Array.cc"
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
33
21573
f3f8e1d3e399 avoid mulitple definitions of static function-scope vars (bug #47372)
John W. Eaton <jwe@octave.org>
parents: 19697
diff changeset
34 #include "jit-ir.h"
14992
fd8d1a616be1 Compile JIT on msvc
Michael Goffioul
parents: 14983
diff changeset
35
21573
f3f8e1d3e399 avoid mulitple definitions of static function-scope vars (bug #47372)
John W. Eaton <jwe@octave.org>
parents: 19697
diff changeset
36 // Prevent implicit instantiations on some systems (Windows, others?)
f3f8e1d3e399 avoid mulitple definitions of static function-scope vars (bug #47372)
John W. Eaton <jwe@octave.org>
parents: 19697
diff changeset
37 // that can lead to duplicate definitions of static data members.
f3f8e1d3e399 avoid mulitple definitions of static function-scope vars (bug #47372)
John W. Eaton <jwe@octave.org>
parents: 19697
diff changeset
38
f3f8e1d3e399 avoid mulitple definitions of static function-scope vars (bug #47372)
John W. Eaton <jwe@octave.org>
parents: 19697
diff changeset
39 extern template class OCTAVE_API Array<idx_vector>;
f3f8e1d3e399 avoid mulitple definitions of static function-scope vars (bug #47372)
John W. Eaton <jwe@octave.org>
parents: 19697
diff changeset
40 extern template class OCTAVE_API Array<octave_idx_type>;
14903
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
41
15014
094bc0a145a1 Take into account different calling conventions
Max Brister <max@2bass.com>
parents: 14992
diff changeset
42 NO_INSTANTIATE_ARRAY_SORT (jit_function);
14903
54ea692b8ab5 Reworking JIT implementation
Max Brister <max@2bass.com>
parents:
diff changeset
43
15014
094bc0a145a1 Take into account different calling conventions
Max Brister <max@2bass.com>
parents: 14992
diff changeset
44 INSTANTIATE_ARRAY (jit_function, OCTINTERP_API);
14972
457eb974310b src/TEMPLATE-INST/Array-jit.cc: Check for LLVM presence
Max Brister <max@2bass.com>
parents: 14903
diff changeset
45
15865
500650d6ddf5 Array-jit.cc: Ensure Cell.h is never included
Max Brister <max@2bass.com>
parents: 15864
diff changeset
46 #ifdef Cell_h
21200
fcac5dbbf9ed maint: Indent #ifdef blocks in libinterp.
Rik <rik@octave.org>
parents: 19697
diff changeset
47 # error Must not include Cell.h in Array-jit.h
fcac5dbbf9ed maint: Indent #ifdef blocks in libinterp.
Rik <rik@octave.org>
parents: 19697
diff changeset
48 # error This causes problems on MSVC
14972
457eb974310b src/TEMPLATE-INST/Array-jit.cc: Check for LLVM presence
Max Brister <max@2bass.com>
parents: 14903
diff changeset
49 #endif
15865
500650d6ddf5 Array-jit.cc: Ensure Cell.h is never included
Max Brister <max@2bass.com>
parents: 15864
diff changeset
50
500650d6ddf5 Array-jit.cc: Ensure Cell.h is never included
Max Brister <max@2bass.com>
parents: 15864
diff changeset
51 #endif