summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [NFC] Capitalization in documentation.Sanjoy Das2015-06-221-1/+1
| | | | llvm-svn: 240303
* Bring r240130 back.Rafael Espindola2015-06-2225-130/+125
| | | | | | | | | | | | | | | | | | | | | | Now that pr23900 is fixed, we can bring it back with no changes. Original message: Make all temporary symbols unnamed. What this does is make all symbols that would otherwise start with a .L (or L on MachO) unnamed. Some of these symbols still show up in the symbol table, but we can just make them unnamed. In order to make sure we produce identical results when going thought assembly, all .L (not just the compiler produced ones), are now unnamed. Running llc on llvm-as.opt.bc, the peak memory usage goes from 208.24MB to 205.57MB. llvm-svn: 240302
* Prepare replacing ISL by its 'make dist' filesMichael Kruse2015-06-228-9/+248
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the Polly repository contains the ISL sources with bogus isl_config.h and gitversion.h. This is problematic. In this state a macro #define __attribute__(x) becomes active in the source, leading to various problems e.g. when included before system header files. This patch will instead generate the two files specific to the host system at configure-time. For CMake, we replicate the tests that ISL's configure performs using try_compile(). In autotools build, we just invoke ISL's configure to generate the two files. This consequently required regenerating autoconf/configure. 'make dist' distributions of ISL contain a file GIT_HEAD_ID which contains the version the distribution is derived from. The repository files themselves do not contain such a hint. In a later commit we will replace the isl directory by the contents of such a .tar.gz. It does not contain the files imdrover.c iprime.c pi.c and rsamath.c currently compiled into Polly, but not used and therefore are removed by this patch. In the long term we plan to generate a dedicated library for ISL instead of adding its files to Polly. This also does not yet include the switch to small-integer optimized ISL nor enabling C99 mode required for the former. Those will come as well in separate patches. Differential version: http://reviews.llvm.org/D10603 Reviewers: grosser llvm-svn: 240301
* Avoid a Symbol -> Name -> Symbol conversion.Rafael Espindola2015-06-2217-46/+103
| | | | | | | | | | | | | | Before this we were producing a TargetExternalSymbol from a MCSymbol. That meant extracting the symbol name and fetching the symbol again down the pipeline. This patch adds a DAG.getMCSymbol that lets the MCSymbol pass unchanged on the DAG. Doing so removes the need for MO_NOPREFIX and fixes the root cause of pr23900, allowing r240130 to be committed again. llvm-svn: 240300
* Cleanup the code a bit to make it more readable. Greg Clayton2015-06-221-4/+14
| | | | | | | | Add some if/then to avoid calling a function to get dynamic/synthetic types if we know we aren't going to need to call it. Avoid calling a function that returns a shared pointer twice: once for testing it and once for assigning it (even though that shared pointer is cached inside the value object), it just makes the code a bit clearer. llvm-svn: 240299
* Fix typo.Rui Ueyama2015-06-221-1/+1
| | | | llvm-svn: 240298
* Misc. cleanups suggested by Aaron BallmanDouglas Gregor2015-06-222-7/+13
| | | | llvm-svn: 240297
* Document the nullability attributes.Douglas Gregor2015-06-223-110/+808
| | | | llvm-svn: 240296
* MIR Serialization: Serialize machine instruction names.Alex Lorenz2015-06-229-4/+236
| | | | | | | | | | | | | | | | This commit implements initial machine instruction serialization. It serializes machine instruction names. The instructions are represented using a YAML sequence of string literals and are a part of machine basic block YAML mapping. This commit introduces a class called 'MIParser' which will be used to parse the machine instructions and operands. Reviewers: Duncan P. N. Exon Smith Differential Revision: http://reviews.llvm.org/D10481 llvm-svn: 240295
* Allow machine hierarchy expansionJonathan Peyton2015-06-221-10/+78
| | | | | | | | | This fix allows the machine hierarchy to be expanded in case it needs to handle more threads. It adds a resize function to accomplish this. Differential Revision: http://reviews.llvm.org/D9900 llvm-svn: 240292
* Fix shl folding in DAG combiner.Pawel Bylica2015-06-222-1/+9
| | | | | | | | | | | | | | | | Summary: The code responsible for shl folding in the DAGCombiner was assuming incorrectly that all constants are less than 64 bits. This patch simply changes the way values are compared. Test Plan: A regression test included. Reviewers: andreadb Reviewed By: andreadb Subscribers: andreadb, test, llvm-commits Differential Revision: http://reviews.llvm.org/D10602 llvm-svn: 240291
* Re-enable Visual Studio Builds.Jonathan Peyton2015-06-222-7/+4
| | | | | | | | | I tried to compile with Visual Studio using CMake and found these two sections of code causing problems for Visual Studio. The first one removes the use of variable length arrays by instead using KMP_ALLOCA(). The second part eliminates a redundant cpuid assembly call by using the already existing __kmp_x86_cpuid() call instead. llvm-svn: 240290
* Add a triple to the test to fix it on some hosts.Rafael Espindola2015-06-221-1/+1
| | | | | | | | The slp vectorizer doesn't optimize this case in 32 bits. Fixes PR23453. llvm-svn: 240289
* [ORC] Add NullResolverJoseph Tremoulet2015-06-223-12/+76
| | | | | | | | | | | | | | | | | Summary: This is an implementation of RuntimeDyld::SymbolResolver that simply rejects all resolution requests; useful for clients that do not have any cross-object symbol references. Reviewers: lhames Reviewed By: lhames Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10455 llvm-svn: 240288
* Support Solaris unused sections' gc link syntax.Rafael Espindola2015-06-221-0/+3
| | | | | | | | | It is not clear if this would work or not with LLVM_NO_DEAD_STRIP binaries, so be conservative for now. Patch by Xan López. llvm-svn: 240287
* Make seeking on an ostream that has eofbit set work correctly. Fixes PR#21361Marshall Clow2015-06-223-2/+24
| | | | llvm-svn: 240286
* Test CommitJaydeep Patil2015-06-221-0/+2
| | | | llvm-svn: 240280
* Don't use &* when get() will suffice; NFC.Aaron Ballman2015-06-221-4/+4
| | | | llvm-svn: 240279
* [mips] [IAS] Add support for LAReg with identical source and destination ↵Toma Tabacu2015-06-222-15/+31
| | | | | | | | | | | | | | | | register operands. Summary: In this case, we're supposed to load the immediate in AT and then ADDu it with the source register and put it in the destination register. Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9367 llvm-svn: 240278
* AVX-512: added VPSHUFB instruction - all SKX formsElena Demikhovsky2015-06-227-0/+184
| | | | | | Added intrinsics and encoding tests. llvm-svn: 240277
* Do not pass optimization flags to Solaris' linker.Rafael Espindola2015-06-221-1/+1
| | | | | | | | It is not supported. Patch by Xan López. llvm-svn: 240276
* Use right syntax to pass version script to Solaris' ld.Rafael Espindola2015-06-221-2/+7
| | | | | | Patch by Xan Lopez! llvm-svn: 240275
* [mips] [IAS] Add support for LASym with identical source and destination ↵Toma Tabacu2015-06-222-8/+26
| | | | | | | | | | | | | | | | | | register operands. Summary: In this case, we're supposed to load the address of the symbol in AT and then ADDu it with the source register and put it in the destination register. Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9366 llvm-svn: 240273
* AVX-512: All forms of VCOPMRESS VEXPAND instructions,Elena Demikhovsky2015-06-225-79/+535
| | | | | | encoding tests. llvm-svn: 240272
* Fixed/added namespace ending comments using clang-tidy. NFCAlexander Kornienko2015-06-224-4/+4
| | | | | | A few more files that were fixed while preparing r240270. llvm-svn: 240271
* Fixed/added namespace ending comments using clang-tidy. NFCAlexander Kornienko2015-06-22344-619/+643
| | | | | | | | | | | | The patch is generated using this command: $ tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \ -checks=-*,llvm-namespace-comment -header-filter='llvm/.*|clang/.*' \ work/llvm/tools/clang To reduce churn, not touching namespaces spanning less than 10 lines. llvm-svn: 240270
* Removing empty directories.Alexander Kornienko2015-06-220-0/+0
| | | | llvm-svn: 240269
* [Mips] Support R_MICROMIPS_HI0_LO16 relocation handlingSimon Atanasyan2015-06-223-1/+63
| | | | llvm-svn: 240268
* [Mips] Support R_MICROMIPS_LITERAL relocation handlingSimon Atanasyan2015-06-223-0/+64
| | | | llvm-svn: 240267
* [Mips] Support R_MIPS_LITERAL relocation handlingSimon Atanasyan2015-06-223-1/+62
| | | | llvm-svn: 240266
* [Mips] Support R_MICROMIPS_SUB relocation handlingSimon Atanasyan2015-06-222-2/+68
| | | | llvm-svn: 240265
* [Mips] Reject R_MIPS_GPREL32 against external symbolsSimon Atanasyan2015-06-222-2/+57
| | | | llvm-svn: 240264
* [Mips] Fix test case - do not use R_MIPS_GPREL32 against external symbolsSimon Atanasyan2015-06-221-3/+3
| | | | | | No functional changes. llvm-svn: 240263
* [Mips] Reject position-dependent relocations in case of shared library linkingSimon Atanasyan2015-06-222-10/+152
| | | | llvm-svn: 240262
* [Mips] Fix test case - do not use R_MIPS_HI16 for shared library linkingSimon Atanasyan2015-06-221-3/+4
| | | | | | No functional changes. llvm-svn: 240261
* [Mips] Support R_MICROMIPS_HIGHER / R_MICROMIPS_HIGHEST relocations handlingSimon Atanasyan2015-06-222-0/+59
| | | | llvm-svn: 240260
* [Mips] Support R_MIPS_HIGHER / R_MIPS_HIGHEST relocations handlingSimon Atanasyan2015-06-222-0/+69
| | | | llvm-svn: 240259
* Reverted AVX-512 vector shuffleElena Demikhovsky2015-06-224-789/+570
| | | | llvm-svn: 240258
* [X86] Allow more call sequences to use push instructions for argument passingMichael Kuperstein2015-06-222-66/+144
| | | | | | | | | This allows more call sequences to use pushes instead of movs when optimizing for size. In particular, calling conventions that pass some parameters in registers (e.g. thiscall) are now supported. Differential Revision: http://reviews.llvm.org/D10500 llvm-svn: 240257
* AVX-512: Added intrinsics for VPERMT2W/D/Q/PS/PD andElena Demikhovsky2015-06-227-8/+718
| | | | | | | VPERMI2W/D/Q/PS/PD instructions. Added tests. llvm-svn: 240256
* [PM/AA] Hoist the AliasResult enum out of the AliasAnalysis class.Chandler Carruth2015-06-2220-137/+138
| | | | | | | | | | | | | | | | | | | | | | | | | | | This will allow classes to implement the AA interface without deriving from the class or referencing an internal enum of some other class as their return types. Also, to a pretty fundamental extent, concepts such as 'NoAlias', 'MayAlias', and 'MustAlias' are first class concepts in LLVM and we aren't saving anything by scoping them heavily. My mild preference would have been to use a scoped enum, but that feature is essentially completely broken AFAICT. I'm extremely disappointed. For example, we cannot through any reasonable[1] means construct an enum class (or analog) which has scoped names but converts to a boolean in order to test for the possibility of aliasing. [1]: Richard Smith came up with a "solution", but it requires class templates, and lots of boilerplate setting up the enumeration multiple times. Something like Boost.PP could potentially bundle this up, but even that would be quite painful and it doesn't seem realistically worth it. The enum class solution would probably work without the need for a bool conversion. Differential Revision: http://reviews.llvm.org/D10495 llvm-svn: 240255
* [PM/AA] Rework the names and comments in AliasSetTracker to moreChandler Carruth2015-06-222-44/+50
| | | | | | | | | | | | | | | | | | | | accurately describe what is being tracked. While these two enums do track mod/ref information and aliasing information, they don't represent the exact same things as either the mod/ref enums or the alias result enum in AA. They're definitions are dominated by the structure of their lattice and the bit's various semantics. This patch just calls them what they are and tries to spell out usefully distinct names for these things. This will clear the path for using a raw unscoped enum to represent some of these concepts across LLVM's analysis library. No functionality changed here. Differential Revision: http://reviews.llvm.org/D10494 llvm-svn: 240254
* Add the testcase from pr23900.Rafael Espindola2015-06-221-0/+29
| | | | llvm-svn: 240253
* Remove incomplete comment.Davide Italiano2015-06-221-1/+0
| | | | llvm-svn: 240252
* Sema: add a helper for enumerating the TST id (NFC)Saleem Abdulrasool2015-06-212-17/+22
| | | | | | | | | | The same pattern was repeated a few times. Create a trivial helper method to map the Type Specifier to an ID for the diagnostic. Flip the selection order on one of the diagnostic messages to get the same ordering across all of the messages. This makes the emission of the diagnostic slightly more legible by changing the cascading ternary into a switch in a function. NFC. llvm-svn: 240251
* COFF: Support delay-load import tables.Rui Ueyama2015-06-217-29/+264
| | | | | | | | | | | | | | | | DLLs are usually resolved at process startup, but you can delay-load them by passing /delayload option to the linker. If a /delayload is specified, the linker has to create data which is similar to regular import table. One notable difference is that the pointers in a delay-load import table are originally pointing to thunks that resolves themselves. Each thunk loads a DLL, resolve its name, and then overwrites the pointer with the result so that subsequent function calls directly call a desired function. The linker has to emit thunks. llvm-svn: 240250
* [X86] Code tidyup - Use SDValue bool operator. NFC.Simon Pilgrim2015-06-211-47/+25
| | | | llvm-svn: 240249
* Clean up CLCompatOptions.td a bit.Nico Weber2015-06-211-27/+34
| | | | | | | | | | Move /Qvec flags from the "// Non-aliases:" section up to the "// Aliases:" section since the flags are just aliases. For the same reason, move the /vm flags the other way. Also reflow a few lines to 80 columns. No behavior change. llvm-svn: 240248
* ASTReader: Treat InputFileOffsets as unaligned to avoid UBJustin Bogner2015-06-212-2/+4
| | | | | | | | | | This is a better approach to fixing the undefined behaviour I tried to fix in r240228. This data doesn't necessarily have suitable alignment for uint64_t, so use unaligned_uint64_t instead. This fixes 225 test failures when clang is built with ubsan. llvm-svn: 240247
* Revert "ASTReader: Copy input file offset data to avoid unaligned accesses"Justin Bogner2015-06-212-11/+3
| | | | | | | | | We can do this better by changing the type to unaligned_uint64_t and paying the cost on use instead of up front. This reverts r240228 llvm-svn: 240246
OpenPOWER on IntegriCloud