Grafico dei commit

6428 Commit

Autore SHA1 Messaggio Data
Ben Sander 2e8ec71e40 Merge pull request #222 from bensander/fix_device_prop
Fix device prop
2017-10-30 17:58:48 +01:00
Ben Sander d610f16c47 Check for null copyEngine before looking at peers. 2017-10-30 16:58:03 +00:00
Ben Sander f8843ae415 Merge pull request #226 from scchan/add_printf3
add printf to HIP device functions
2017-10-30 17:08:18 +01:00
Jenkins c62c05aadb Merge 'master' into 'amd-master'
Change-Id: If65d05820af920addd3939c09cf76aafe99512aa
2017-10-30 04:10:43 -05:00
Phaneendr-kumar Lanka 511de63bcb [newTests]Adding tests for device APIs 2017-10-30 14:34:24 +05:30
Evgeny Mankov bf7d3a5897 Merge branch 'master' of https://github.com/ROCm-Developer-Tools/HIP 2017-10-27 23:32:57 +03:00
Evgeny Mankov 44c74b6511 [HIPIFY] fix typo - missing ) 2017-10-27 23:31:43 +03:00
Evgeny Mankov 8318b1536a Merge branch 'master' of https://github.com/ROCm-Developer-Tools/HIP 2017-10-27 23:23:32 +03:00
Evgeny Mankov b28a69785b Merge pull request #238 from ChrisKitching/statistics
[HIPIFY] Decouple the statistics system from the code rewriter
2017-10-27 23:17:20 +03:00
Evgeny Mankov 6a099c5769 Merge branch 'master' of https://github.com/ROCm-Developer-Tools/HIP 2017-10-27 22:42:19 +03:00
Evgeny Mankov c9b7c43e1c Merge pull request #236 from ChrisKitching/friendlyCmake
[HIPIFY] Make the cmake build system more friendly
2017-10-27 22:35:13 +03:00
Chris Kitching 20871a3a07 Remove commented else-block
A warning statement for _string literals_ seems a bit unhelpful.
There's no value in this being here.
2017-10-27 20:12:33 +01:00
Chris Kitching b303ffe53e Decouple the statistics system from the code translation
The original implementation had the statistics system woken very
tightly into things like PPCallbacks, with counters duplicated
in two places, and all the output code duplicated. This made it
very difficult to alter the structure of the program without
breaking the statistics system.

Since the planned approach for solving the remaining preprocessor
bugs needs the introduction of a custom FrontendAction, and such
a restructure was incompatible with the way the statistics system
was set up, this rewrite was required.

'tis rather simpler now, mind you :D

This commit also fixes an issue where some stats were counted
twice, and allows `-print-stats` to operate independently of
`-stat-output`, allowing you to print stats to a file without
printing them to a terminal (or vice-versa).
2017-10-27 20:12:33 +01:00
Chris Kitching 5699c18adc Copy-paste less in the statistics printing code 2017-10-27 20:12:33 +01:00
Chris Kitching 50448aec3b Inline updateCountersExt 2017-10-27 20:12:32 +01:00
Chris Kitching d8beee8918 Update counter maps sanely
operator[] default-constructs the map value if no value exists
for that key. Default-construction of int yields a zero. So all
the manual faffing around is just unnecessary.
2017-10-27 20:12:32 +01:00
Chris Kitching 00bb447e55 Prefer references to pointers in updateCountersExt() 2017-10-27 20:12:32 +01:00
Chris Kitching ee8e11a720 Move string utility functions into their own translation unit 2017-10-27 20:12:32 +01:00
Chris Kitching 1bd837b4b1 Extract LLVM compatibility code into its own translation unit 2017-10-27 20:12:32 +01:00
Chris Kitching 0c09bdf523 Remove unused field 2017-10-27 20:12:32 +01:00
Chris Kitching c6707ef33c Remove CUDA_EXCLUDES
An artefact from a now-defunct hack to avoid corrupting programs
2017-10-27 20:12:32 +01:00
Chris Kitching 2f376c9b25 Make unsupported actually be a bool... 2017-10-27 20:12:31 +01:00
Chris Kitching 69e67fe25a Describe the LLVM we found 2017-10-27 19:39:41 +01:00
Chris Kitching 82d05ee6f4 Update hipify-clang readme for simplified build process 2017-10-27 19:39:41 +01:00
Chris Kitching b412802c66 hipify does not add the hipLaunchParm option any more
This was removed a while ago - seems like it uses a different
variant of the launch kernel function now, so this is redundant.
2017-10-27 19:39:41 +01:00
Chris Kitching 8fefc6a2b7 Use cmake's builtin mechanism for handling library locations
See [the documentation](https://cmake.org/cmake/help/v3.0/command/find_package.html)
for exactly how the search procedure works. If you want to use an
LLVM from a specific location, use CMAKE_PREFIX_PATH as normal.

No longer do we have a nonstandard HIPIFY_CLANG_LLVM_DIR variable
for people to learn about.
2017-10-27 19:39:40 +01:00
Chris Kitching 92c90a7068 Move the "LLVM found" print adjacent to the find_package call
Very surprising that LLVM's finder module doesn't print this
itself like _literally every other finder module_. Blarg.
2017-10-27 19:39:40 +01:00
Chris Kitching c60c8d417e We no longer rely on HIPIFY_CLANG_LLVM_DIR to disable hipify-clang
Since there's now an option for toggling hipify-clang, omitting the
path is no longer something we need to check for. We'll still
abort if LLVM isn't found, due to `REQUIRED`.
2017-10-27 19:39:40 +01:00
Chris Kitching 921ff4c8a3 Don't attempt to find test dependencies if tests are disabled
And while we're at it, introduce a handy program-finder macro
2017-10-27 19:39:40 +01:00
Chris Kitching 56b4222043 Use add_dependencies to avoid duplication of pkg_hip_base 2017-10-27 19:39:40 +01:00
Chris Kitching a4ecd4eb31 Make BUILD_HIPIFY_CLANG a cmake option
Instead of deciding whether to build hipify-clang based on
the presence of an LLVM path on the command line, have an
explicit option.

Do we want this default-on or default-off? I've defaulted it to
on for now, but maybe we want the opposite?
2017-10-27 19:39:39 +01:00
Evgeny Mankov d709fb6274 Merge branch 'master' of https://github.com/ROCm-Developer-Tools/HIP 2017-10-27 21:31:32 +03:00
Evgeny Mankov 9151a355c6 Merge pull request #234 from ChrisKitching/warningSpam
[HIPIFY] Do not process __fetch_builtin_* in cudaCall()
2017-10-27 21:30:42 +03:00
Evgeny Mankov 351c785ae6 Merge branch 'master' of https://github.com/ROCm-Developer-Tools/HIP 2017-10-27 21:27:17 +03:00
Evgeny Mankov a865ebfe10 Merge pull request #235 from ChrisKitching/preprocessorEnhancements
[HIPIFY] Handle unconditional preprocessor directives far better
2017-10-27 21:21:20 +03:00
Jenkins 426570b6c9 Merge 'master' into 'amd-master'
Change-Id: If1e06673a54f97527160460f1cf31e51b62be3d6
2017-10-27 04:10:26 -05:00
Siu Chi Chan a9789ddcda Merge remote-tracking branch 'origin/master' into HEAD 2017-10-27 01:18:28 -04:00
Ben Sander f288f24e95 Merge pull request #198 from AlexVlx/feature_support_globals_for_module_api
Feature support globals for module api
2017-10-27 01:53:34 +02:00
Ben Sander e97f675397 Merge pull request #218 from ChrisKitching/nodiscard
Add [[nodiscard]] attribute to hipError_t in C++17 mode
2017-10-26 22:48:54 +02:00
Ben Sander 772fe865fc Merge pull request #223 from bensander/2x_bidir
Use 2X for bidir memory bandwidth calc
2017-10-26 21:49:06 +02:00
Ben Sander 7d30f32332 Fix bug with peer-to-peer combined with context API
- Store context inside the tracker rather than using int deviceID that
  was always mapped to primary context
- IsPeerWatcher now based on device IDs rather than specific peers.
2017-10-26 19:44:22 +00:00
Aditya Atluri 5d646d0fe3 Enhance debug for copy pointers
- show more pointer tracking fields
- show pointer info before and after "tailoring'
2017-10-26 19:44:22 +00:00
Evgeny Mankov bb2b416337 Merge branch 'master' of https://github.com/ROCm-Developer-Tools/HIP 2017-10-26 20:33:18 +03: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 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 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 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 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 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 2a5acac80e Do not process __fetch_builtin_* in cudaCall()
Fixes #205
2017-10-26 17:23:55 +01:00