llvm.org GIT mirror llvm / 31db633
ReleaseNotes: fix some indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@246108 91177308-0d34-0410-b5e6-96231b3b80d8 Hans Wennborg 4 years ago
1 changed file(s) with 56 addition(s) and 56 deletion(s). Raw diff Collapse all Expand all
285285
286286 * isl imported into Polly distribution
287287
288 `isl `_, the math library Polly uses, has been
289 imported into the source code repository of Polly and is now distributed as part
290 of Polly. As this was the last external library dependency of Polly, Polly can
291 now be compiled right after checking out the Polly source code without the need
292 for any additional libraries to be pre-installed.
288 `isl `_, the math library Polly uses, has been
289 imported into the source code repository of Polly and is now distributed as part
290 of Polly. As this was the last external library dependency of Polly, Polly can
291 now be compiled right after checking out the Polly source code without the need
292 for any additional libraries to be pre-installed.
293293
294294 * Small integer optimization of isl
295295
296 The MIT licensed imath backend using in `isl `_ for
297 arbitrary width integer computations has been optimized to use native integer
298 operations for the common case where the operands of a computation fit into 32
299 bit and to only fall back to large arbitrary precision integers for the
300 remaining cases. This optimization has greatly improved the compile-time
301 performance of Polly, both due to faster native operations also due to a
302 reduction in malloc traffic and pointer indirections. As a result, computations
303 that use arbitrary precision integers heavily have been speed up by almost 6x.
304 As a result, the compile-time of Polly on the Polybench test kernels in the LNT
305 suite has been reduced by 20% on average with compile time reductions between
306 9-43%.
296 The MIT licensed imath backend using in `isl `_ for
297 arbitrary width integer computations has been optimized to use native integer
298 operations for the common case where the operands of a computation fit into 32
299 bit and to only fall back to large arbitrary precision integers for the
300 remaining cases. This optimization has greatly improved the compile-time
301 performance of Polly, both due to faster native operations also due to a
302 reduction in malloc traffic and pointer indirections. As a result, computations
303 that use arbitrary precision integers heavily have been speed up by almost 6x.
304 As a result, the compile-time of Polly on the Polybench test kernels in the LNT
305 suite has been reduced by 20% on average with compile time reductions between
306 9-43%.
307307
308308 * Schedule Trees
309309
310 Polly now uses internally so-called > Schedule Trees < to model the loop
311 structure it optimizes. Schedule trees are an easy to understand tree structure
312 that describes a loop nest using integer constraint sets to keep track of
313 execution constraints. It allows the developer to use per-tree-node operations
314 to modify the loop tree. Programatic analysis that work on the schedule tree
315 (e.g., as dependence analysis) also show a visible speedup as they can exploit
316 the tree structure of the schedule and need to fall back to ILP based
317 optimization problems less often. Section 6 of `Polyhedral AST generation is
318 more than scanning polyhedra
319 `_ gives a detailed
320 explanation of this schedule trees.
310 Polly now uses internally so-called > Schedule Trees < to model the loop
311 structure it optimizes. Schedule trees are an easy to understand tree structure
312 that describes a loop nest using integer constraint sets to keep track of
313 execution constraints. It allows the developer to use per-tree-node operations
314 to modify the loop tree. Programatic analysis that work on the schedule tree
315 (e.g., as dependence analysis) also show a visible speedup as they can exploit
316 the tree structure of the schedule and need to fall back to ILP based
317 optimization problems less often. Section 6 of `Polyhedral AST generation is
318 more than scanning polyhedra
319 `_ gives a detailed
320 explanation of this schedule trees.
321321
322322 * Scalar and PHI node modeling - Polly as an analysis
323323
324 Polly now requires almost no preprocessing to analyse LLVM-IR, which makes it
325 easier to use Polly as a pure analysis pass e.g. to provide more precise
326 dependence information to non-polyhedral transformation passes. Originally,
327 Polly required the input LLVM-IR to be preprocessed such that all scalar and
328 PHI-node dependences are translated to in-memory operations. Since this release,
329 Polly has full support for scalar and PHI node dependences and requires no
330 scalar-to-memory translation for such kind of dependences.
324 Polly now requires almost no preprocessing to analyse LLVM-IR, which makes it
325 easier to use Polly as a pure analysis pass e.g. to provide more precise
326 dependence information to non-polyhedral transformation passes. Originally,
327 Polly required the input LLVM-IR to be preprocessed such that all scalar and
328 PHI-node dependences are translated to in-memory operations. Since this release,
329 Polly has full support for scalar and PHI node dependences and requires no
330 scalar-to-memory translation for such kind of dependences.
331331
332332 * Modeling of modulo and non-affine conditions
333333
334 Polly can now supports modulo operations such as A[t%2][i][j] as they appear
335 often in stencil computations and also allows data-dependent conditional
336 branches as they result e.g. from ternary conditions ala A[i] > 255 ? 255 :
337 A[i].
334 Polly can now supports modulo operations such as A[t%2][i][j] as they appear
335 often in stencil computations and also allows data-dependent conditional
336 branches as they result e.g. from ternary conditions ala A[i] > 255 ? 255 :
337 A[i].
338338
339339 * Delinearization
340340
341 Polly now support the analysis of manually linearized multi-dimensional arrays
342 as they result form macros such as
343 "#define 2DARRAY(A,i,j) (A.data[(i) * A.size + (j)]". Similar constructs appear
344 in old C code written before C99, C++ code such as boost::ublas, LLVM exported
345 from Julia, Matlab generated code and many others. Our work titled
346 `Optimistic Delinearization of Parametrically Sized Arrays
347 `_ gives details.
341 Polly now support the analysis of manually linearized multi-dimensional arrays
342 as they result form macros such as
343 "#define 2DARRAY(A,i,j) (A.data[(i) * A.size + (j)]". Similar constructs appear
344 in old C code written before C99, C++ code such as boost::ublas, LLVM exported
345 from Julia, Matlab generated code and many others. Our work titled
346 `Optimistic Delinearization of Parametrically Sized Arrays
347 `_ gives details.
348348
349349 * Compile time improvements
350350
351 Pratik Bahtu worked on compile-time performance tuning of Polly. His work
352 together with the support for schedule trees and the small integer optimization
353 in isl notably reduced the compile time.
351 Pratik Bahtu worked on compile-time performance tuning of Polly. His work
352 together with the support for schedule trees and the small integer optimization
353 in isl notably reduced the compile time.
354354
355355 * Increased compute timeouts
356356
357 As Polly's compile time has been notabily improved, we were able to increase
358 the compile time saveguards in Polly. As a result, the default configuration
359 of Polly can now analyze larger loop nests without running into compile time
360 restrictions.
357 As Polly's compile time has been notabily improved, we were able to increase
358 the compile time saveguards in Polly. As a result, the default configuration
359 of Polly can now analyze larger loop nests without running into compile time
360 restrictions.
361361
362362 * Export Debug Locations via JSCoP file
363363
364 Polly's JSCoP import/export format gained support for debug locations that show
365 to the user the source code location of detected scops.
364 Polly's JSCoP import/export format gained support for debug locations that show
365 to the user the source code location of detected scops.
366366
367367 * Improved windows support
368368
369 The compilation of Polly on windows using cmake has been improved and several
370 visual studio build issues have been addressed.
369 The compilation of Polly on windows using cmake has been improved and several
370 visual studio build issues have been addressed.
371371
372372 * Many bug fixes
373373