76333 Commits

Author SHA1 Message Date
Chris Kitching 6491c2c3eb Greatly enhance handling of macros in kernel launches
All but the most contrived use of macros is now properly handled -
have a look at the new testcases this commit adds. You can have
macros in kernel calls, macros spanning chunks of your arguments,
the call, call parameters, or callee can all be macros or
partially macros.
2017-10-26 17:28:46 +01:00
Chris Kitching c15f6bdf5c Greatly enhance handling of macros in kernel launches
All but the most contrived use of macros is now properly handled -
have a look at the new testcases this commit adds. You can have
macros in kernel calls, macros spanning chunks of your arguments,
the call, call parameters, or callee can all be macros or
partially macros.


[ROCm/hip commit: 094b2b9b05]
2017-10-26 17:28:46 +01:00
Chris Kitching 094b2b9b05 Greatly enhance handling of macros in kernel launches
All but the most contrived use of macros is now properly handled -
have a look at the new testcases this commit adds. You can have
macros in kernel calls, macros spanning chunks of your arguments,
the call, call parameters, or callee can all be macros or
partially macros.
2017-10-26 17:28:46 +01:00
Chris Kitching 58428d739c Simplify how kernel launch expressions get translated
It seems like there was a lot of machinery here that is no longer
needed now we have hipLaunchKernelGGL (which doesn't require us
to insert an extra argument into kernel functions). We no longer
need to waste cycles scanning the AST for callees.

We can literally just do "Take the callee expression, and dump
it into the first argument of hipLaunchKernelGGL()".


[ROCm/clr commit: a35d30e0b7]
2017-10-26 17:28:30 +01:00
Chris Kitching a35d30e0b7 Simplify how kernel launch expressions get translated
It seems like there was a lot of machinery here that is no longer
needed now we have hipLaunchKernelGGL (which doesn't require us
to insert an extra argument into kernel functions). We no longer
need to waste cycles scanning the AST for callees.

We can literally just do "Take the callee expression, and dump
it into the first argument of hipLaunchKernelGGL()".
2017-10-26 17:28:30 +01:00
Chris Kitching d0acfd5bde Simplify how kernel launch expressions get translated
It seems like there was a lot of machinery here that is no longer
needed now we have hipLaunchKernelGGL (which doesn't require us
to insert an extra argument into kernel functions). We no longer
need to waste cycles scanning the AST for callees.

We can literally just do "Take the callee expression, and dump
it into the first argument of hipLaunchKernelGGL()".


[ROCm/hip commit: eff86d975b]
2017-10-26 17:28:30 +01:00
Chris Kitching eff86d975b Simplify how kernel launch expressions get translated
It seems like there was a lot of machinery here that is no longer
needed now we have hipLaunchKernelGGL (which doesn't require us
to insert an extra argument into kernel functions). We no longer
need to waste cycles scanning the AST for callees.

We can literally just do "Take the callee expression, and dump
it into the first argument of hipLaunchKernelGGL()".
2017-10-26 17:28:30 +01:00
Chris Kitching 74af29d66a Deduplicate preprocessor code
There's three functions here that all do the same thing...

There was also logic that looks for numeric literals and works
backwards to find the macro name from which they are expanded.
I previously introduced code that rewrites macro references at
expand-time in the `MacroExpands` callback, so that code is no
longer doing anything useful.


[ROCm/clr commit: 1ef68090ae]
2017-10-26 17:28:30 +01:00
Chris Kitching 1ef68090ae Deduplicate preprocessor code
There's three functions here that all do the same thing...

There was also logic that looks for numeric literals and works
backwards to find the macro name from which they are expanded.
I previously introduced code that rewrites macro references at
expand-time in the `MacroExpands` callback, so that code is no
longer doing anything useful.
2017-10-26 17:28:30 +01:00
Chris Kitching 59713c2459 Deduplicate preprocessor code
There's three functions here that all do the same thing...

There was also logic that looks for numeric literals and works
backwards to find the macro name from which they are expanded.
I previously introduced code that rewrites macro references at
expand-time in the `MacroExpands` callback, so that code is no
longer doing anything useful.


[ROCm/hip commit: fd911e1839]
2017-10-26 17:28:30 +01:00
Chris Kitching fd911e1839 Deduplicate preprocessor code
There's three functions here that all do the same thing...

There was also logic that looks for numeric literals and works
backwards to find the macro name from which they are expanded.
I previously introduced code that rewrites macro references at
expand-time in the `MacroExpands` callback, so that code is no
longer doing anything useful.
2017-10-26 17:28:30 +01:00
Chris Kitching b25b17b6b3 Rewrite _all_ CUDA macro identifiers in the preprocessor
Calls to macros that were themselves CUDA API calls were often
being missed - this applies the identifier transform to macro
names at the callsites, too.


[ROCm/clr commit: 30e7e7d919]
2017-10-26 17:27:56 +01:00
Chris Kitching 30e7e7d919 Rewrite _all_ CUDA macro identifiers in the preprocessor
Calls to macros that were themselves CUDA API calls were often
being missed - this applies the identifier transform to macro
names at the callsites, too.
2017-10-26 17:27:56 +01:00
Chris Kitching ca913bb196 Rewrite _all_ CUDA macro identifiers in the preprocessor
Calls to macros that were themselves CUDA API calls were often
being missed - this applies the identifier transform to macro
names at the callsites, too.


[ROCm/hip commit: d1e26b2e7e]
2017-10-26 17:27:56 +01:00
Chris Kitching d1e26b2e7e Rewrite _all_ CUDA macro identifiers in the preprocessor
Calls to macros that were themselves CUDA API calls were often
being missed - this applies the identifier transform to macro
names at the callsites, too.
2017-10-26 17:27:56 +01:00
Chris Kitching cf50b4f97a Don't special-case source locations for calls in macros
The source location for a call that's inside a macro body will,
by default, point into the macro definition itself. The original
logic was causing macro invocations to be overwritten, as I
explain here:
https://github.com/ROCm-Developer-Tools/HIP/issues/207#issuecomment-337521851

The existing PPCallbacks code is correctly rewriting macro
definitions, so the practical effect of this change is that AST
rewrites on code that's expanded from macros are no-ops.

It might be a performance optimisation to put a short-circiut at
the top of the AST callbacks to abort when faced with code that
was expanded from macros.

It might yet prove wise to do absolutely everything at lex-time...


[ROCm/clr commit: f7e65c5334]
2017-10-26 17:26:37 +01:00
Chris Kitching f7e65c5334 Don't special-case source locations for calls in macros
The source location for a call that's inside a macro body will,
by default, point into the macro definition itself. The original
logic was causing macro invocations to be overwritten, as I
explain here:
https://github.com/ROCm-Developer-Tools/HIP/issues/207#issuecomment-337521851

The existing PPCallbacks code is correctly rewriting macro
definitions, so the practical effect of this change is that AST
rewrites on code that's expanded from macros are no-ops.

It might be a performance optimisation to put a short-circiut at
the top of the AST callbacks to abort when faced with code that
was expanded from macros.

It might yet prove wise to do absolutely everything at lex-time...
2017-10-26 17:26:37 +01:00
Chris Kitching cbf786a8fd Don't special-case source locations for calls in macros
The source location for a call that's inside a macro body will,
by default, point into the macro definition itself. The original
logic was causing macro invocations to be overwritten, as I
explain here:
https://github.com/ROCm-Developer-Tools/HIP/issues/207#issuecomment-337521851

The existing PPCallbacks code is correctly rewriting macro
definitions, so the practical effect of this change is that AST
rewrites on code that's expanded from macros are no-ops.

It might be a performance optimisation to put a short-circiut at
the top of the AST callbacks to abort when faced with code that
was expanded from macros.

It might yet prove wise to do absolutely everything at lex-time...


[ROCm/hip commit: 4a794ed8c0]
2017-10-26 17:26:37 +01:00
Chris Kitching 4a794ed8c0 Don't special-case source locations for calls in macros
The source location for a call that's inside a macro body will,
by default, point into the macro definition itself. The original
logic was causing macro invocations to be overwritten, as I
explain here:
https://github.com/ROCm-Developer-Tools/HIP/issues/207#issuecomment-337521851

The existing PPCallbacks code is correctly rewriting macro
definitions, so the practical effect of this change is that AST
rewrites on code that's expanded from macros are no-ops.

It might be a performance optimisation to put a short-circiut at
the top of the AST callbacks to abort when faced with code that
was expanded from macros.

It might yet prove wise to do absolutely everything at lex-time...
2017-10-26 17:26:37 +01:00
Chris Kitching af81909cab Prefer early-return to deep nesting
A chain of 7 closing braces is never a great sign :D

In the process it became apparant that the unsupported flag
was being silently ignored, causing users to be left with cuda
API calls in their programs with no warning given. This has been
rectified for consistency.


[ROCm/clr commit: c1f4612176]
2017-10-26 17:26:37 +01:00
Chris Kitching c1f4612176 Prefer early-return to deep nesting
A chain of 7 closing braces is never a great sign :D

In the process it became apparant that the unsupported flag
was being silently ignored, causing users to be left with cuda
API calls in their programs with no warning given. This has been
rectified for consistency.
2017-10-26 17:26:37 +01:00
Chris Kitching 32cbe68a93 Prefer early-return to deep nesting
A chain of 7 closing braces is never a great sign :D

In the process it became apparant that the unsupported flag
was being silently ignored, causing users to be left with cuda
API calls in their programs with no warning given. This has been
rectified for consistency.


[ROCm/hip commit: 35a892bc77]
2017-10-26 17:26:37 +01:00
Chris Kitching 35a892bc77 Prefer early-return to deep nesting
A chain of 7 closing braces is never a great sign :D

In the process it became apparant that the unsupported flag
was being silently ignored, causing users to be left with cuda
API calls in their programs with no warning given. This has been
rectified for consistency.
2017-10-26 17:26:37 +01:00
Chris Kitching 07fb675fe7 Do not process __fetch_builtin_* in cudaCall()
Fixes #205


[ROCm/clr commit: d5fd5e55c5]
2017-10-26 17:23:55 +01:00
Chris Kitching d5fd5e55c5 Do not process __fetch_builtin_* in cudaCall()
Fixes #205
2017-10-26 17:23:55 +01:00
Chris Kitching 78826f5512 Do not process __fetch_builtin_* in cudaCall()
Fixes #205


[ROCm/hip commit: 2a5acac80e]
2017-10-26 17:23:55 +01:00
Chris Kitching 2a5acac80e Do not process __fetch_builtin_* in cudaCall()
Fixes #205
2017-10-26 17:23:55 +01:00
Evgeny Mankov 2371dda65e Merge pull request #213 from ChrisKitching/simplify
[HIPIFY] Simplify (and accelerate) hipification of CUDA type identifiers

[ROCm/clr commit: fbdedd9196]
2017-10-26 19:17:01 +03:00
Evgeny Mankov fbdedd9196 Merge pull request #213 from ChrisKitching/simplify
[HIPIFY] Simplify (and accelerate) hipification of CUDA type identifiers
2017-10-26 19:17:01 +03:00
Evgeny Mankov 99d43e1e6a Merge pull request #213 from ChrisKitching/simplify
[HIPIFY] Simplify (and accelerate) hipification of CUDA type identifiers

[ROCm/hip commit: 3bacb69e20]
2017-10-26 19:17:01 +03:00
Evgeny Mankov 3bacb69e20 Merge pull request #213 from ChrisKitching/simplify
[HIPIFY] Simplify (and accelerate) hipification of CUDA type identifiers
2017-10-26 19:17:01 +03:00
foreman 4bca203504 P4 to Git Change 1475035 by johtaylo@johtaylo-jtincrementor2-increment on 2017/10/26 03:00:04
SWDEV-2 - Change OpenCL version number from 2527 to 2528.

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#2275 edit


[ROCm/clr commit: d4d5d461f2]
2017-10-26 03:09:26 -04:00
foreman d4d5d461f2 P4 to Git Change 1475035 by johtaylo@johtaylo-jtincrementor2-increment on 2017/10/26 03:00:04
SWDEV-2 - Change OpenCL version number from 2527 to 2528.

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#2275 edit
2017-10-26 03:09:26 -04:00
Sean Keely aece2f8fc2 Remove make build file.
Change-Id: I86abae4c44b6c606fb850eff6d44cdbf30cf59f5
2017-10-26 01:12:31 -04:00
Sean Keely 718134a369 Remove make build file.
Change-Id: I86abae4c44b6c606fb850eff6d44cdbf30cf59f5


[ROCm/ROCR-Runtime commit: aece2f8fc2]
2017-10-26 01:12:31 -04:00
Jan Vesely d8a8f88737 cmake: make sure there are no undefined symbols
Change-Id: Id5a268d7e512f71c1a65af598543eb60ae6c3596
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
2017-10-25 17:46:58 -04:00
Jan Vesely d28f85fb3a cmake: make sure there are no undefined symbols
Change-Id: Id5a268d7e512f71c1a65af598543eb60ae6c3596
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>


[ROCm/ROCR-Runtime commit: d8a8f88737]
2017-10-25 17:46:58 -04:00
Jan Vesely 383f275aa7 cmake: Use pkg-config to find libpci
Change-Id: I1ab4397d88a2bd48ce0d6f2d3c33efcf47bc442f
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
2017-10-25 17:46:58 -04:00
Jan Vesely 0dded82034 cmake: Use pkg-config to find libpci
Change-Id: I1ab4397d88a2bd48ce0d6f2d3c33efcf47bc442f
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>


[ROCm/ROCR-Runtime commit: 383f275aa7]
2017-10-25 17:46:58 -04:00
Ben Sander 0a82572fa2 Merge pull request #232 from kknox/update-cuda-version
Update container to newer cuda driver and sdk 9.0

[ROCm/clr commit: cf9eb832a2]
2017-10-25 23:45:24 +02:00
Ben Sander cf9eb832a2 Merge pull request #232 from kknox/update-cuda-version
Update container to newer cuda driver and sdk 9.0
2017-10-25 23:45:24 +02:00
Ben Sander 79126196ce Merge pull request #232 from kknox/update-cuda-version
Update container to newer cuda driver and sdk 9.0

[ROCm/hip commit: c0ef6d7b62]
2017-10-25 23:45:24 +02:00
Ben Sander c0ef6d7b62 Merge pull request #232 from kknox/update-cuda-version
Update container to newer cuda driver and sdk 9.0
2017-10-25 23:45:24 +02:00
Kent Knox f32e20abc7 Update container to newer cuda driver and sdk 9.0
[ROCm/clr commit: f81d6d5bb3]
2017-10-25 16:14:32 -05:00
Kent Knox f81d6d5bb3 Update container to newer cuda driver and sdk 9.0 2017-10-25 16:14:32 -05:00
Kent Knox f6b4db7dd5 Update container to newer cuda driver and sdk 9.0
[ROCm/hip commit: 160d92af20]
2017-10-25 16:14:32 -05:00
Kent Knox 160d92af20 Update container to newer cuda driver and sdk 9.0 2017-10-25 16:14:32 -05:00
Ben Sander 4593effbe8 Clean up test to address review feedback.
[ROCm/clr commit: cc2bcbcbcf]
2017-10-25 16:08:16 -05:00
Ben Sander cc2bcbcbcf Clean up test to address review feedback. 2017-10-25 16:08:16 -05:00
Ben Sander 68e571aa82 Clean up test to address review feedback.
[ROCm/hip commit: ca1230300a]
2017-10-25 16:08:16 -05:00