summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* [PatternMatch] Switch to use ValueTracking::matchSelectPatternJames Molloy2015-11-021-39/+24
| | | | | | | Instead of rolling our own min/max matching code (which is notoriously hard to get completely right), use ValueTracking's instead. llvm-svn: 251785
* [Support] Extend sys::path with user_cache_directory function.Pawel Bylica2015-11-025-21/+119
| | | | | | | | | | | | | | | | | | | | Summary: The new function sys::path::user_cache_directory tries to discover a directory suitable for cache storage for current system user. On Windows and Darwin it returns a path to system-specific user cache directory. On Linux it follows XDG Base Directory Specification, what is: - use non-empty $XDG_CACHE_HOME env var, - use $HOME/.cache. Reviewers: chapuni, aaron.ballman, rafael Subscribers: rafael, aaron.ballman, llvm-commits Differential Revision: http://reviews.llvm.org/D13801 llvm-svn: 251784
* AVX512: Implemented encoding and intrinsics for VBROADCASTI32x2 and ↵Igor Breger2015-11-028-0/+542
| | | | | | | | VBROADCASTF32x2 instructions. Differential Revision: http://reviews.llvm.org/D14216 llvm-svn: 251781
* [X86] Remove assertions that check for valid scale values on scatter/gather ↵Craig Topper2015-11-021-8/+0
| | | | | | intrinsics. Nothing upstream prevented illegal values from getting here. llvm-svn: 251780
* [X86] Don't pass a scale value of 0 to scatter/gather intrinsics. This ↵Craig Topper2015-11-021-52/+52
| | | | | | causes the code emitter to throw an assertion if we try to encode it. Need to add a check to fail isel for this, but for now avoid testing it. llvm-svn: 251779
* [X86] Fold 'if' followed by just an llvm_unreachable into an assert.Craig Topper2015-11-021-8/+7
| | | | llvm-svn: 251778
* [X86] Use isa instead of dyn_cast in a bool context. NFCCraig Topper2015-11-021-2/+2
| | | | llvm-svn: 251777
* [X86] Remove some llvm_unreachables after switches that already have an ↵Craig Topper2015-11-021-5/+3
| | | | | | unreachable in their default case. llvm-svn: 251776
* [X86] Remove a 'break' after an llvm_unreachable.Craig Topper2015-11-021-3/+1
| | | | llvm-svn: 251775
* [X86] Use cast instead of dyn_cast and a null check marked unreachable.Craig Topper2015-11-021-8/+3
| | | | llvm-svn: 251774
* Fix a -Wpessimizing-move warning.Craig Topper2015-11-021-1/+1
| | | | llvm-svn: 251773
* [X86] Use MVT instead of EVT when the type is known to be simple. NFCCraig Topper2015-11-022-89/+80
| | | | llvm-svn: 251772
* [PGO] Value profiling (index format) code cleanup and testingXinliang David Li2015-11-026-93/+418
| | | | | | | | | | | | | | | | | 1. Added a set of public interfaces in InstrProfRecord class to access (read/write) value profile data. 2. Changed IndexedProfile reader and writer code to use the newly defined interfaces and hide implementation details. 3. Added a couple of unittests for value profiling: - Test new interfaces to get and set value profile data - Test value profile data merging with various scenarios. No functional change is expected. The new interfaces will also make it possible to change on-disk format of value prof data to be more compact (to be submitted). llvm-svn: 251771
* [SCEV] Fix PR25369Sanjoy Das2015-11-022-27/+104
| | | | | | | | | | | | | Have `getConstantEvolutionLoopExitValue` work correctly with multiple entry loops. As far as I can tell, `getConstantEvolutionLoopExitValue` never did the right thing for multiple entry loops; and before r249712 it would silently return an incorrect answer. r249712 changed SCEV to fail an assert on a multiple entry loop, and this change fixes the underlying issue. llvm-svn: 251770
* Untabify.NAKAMURA Takumi2015-11-023-7/+7
| | | | llvm-svn: 251769
* [LibraryInfo] Point to FreeBSD HEAD repo and not to a dolphin branch.Davide Italiano2015-11-011-2/+2
| | | | | | The latter might go away (anytime soon). llvm-svn: 251765
* AVX-512: Optimized SIMD truncate operations for AVX512F set.Elena Demikhovsky2015-11-014-83/+224
| | | | | | | | | | | | Optimized <8 x i32> to <8 x i16> <4 x i64> to < 4 x i32> <16 x i16> to <16 x i8> All these oprtrations use now AVX512F set (KNL). Before this change it was implemented with AVX2 set. Differential Revision: http://reviews.llvm.org/D14108 llvm-svn: 251764
* RuntimeDyld: add COFF i386 supportSaleem Abdulrasool2015-11-013-0/+268
| | | | | | | This adds support for COFF I386. This is sufficient for code execution in a 32-bit JIT, though, imported symbols need to custom lowered for the redirection. llvm-svn: 251761
* Make a few definitions static. NFC.Rafael Espindola2015-11-011-5/+6
| | | | llvm-svn: 251759
* Use Child instead of child_iterator in the archive writer.Rafael Espindola2015-11-013-12/+11
| | | | | | | We never need to pass end(). This will also remove some complication once we start adding error checking. llvm-svn: 251758
* Simplify a check. NFC.Davide Italiano2015-11-011-2/+2
| | | | llvm-svn: 251757
* [SCEV] Don't create SCEV expressions that break LCSSASanjoy Das2015-10-313-0/+62
| | | | | | | | | | | | | Prevent `createNodeFromSelectLikePHI` from creating SCEV expressions that break LCSSA. A better fix for the same issue is to teach SCEVExpander to not break LCSSA by inserting PHI nodes at appropriate places. That's planned for the future. Fixes PR25360. llvm-svn: 251756
* [SCEV] Use auto and range for; NFCSanjoy Das2015-10-311-10/+7
| | | | llvm-svn: 251755
* [SimplifyLibCalls] Factor out other common code.Davide Italiano2015-10-311-21/+10
| | | | llvm-svn: 251754
* This can take a const reference. NFC.Rafael Espindola2015-10-311-1/+1
| | | | llvm-svn: 251753
* SamplePGO - Count sample records in embedded profiles when computing coverage.Diego Novillo2015-10-313-30/+191
| | | | | | | The initial coverage checking code for sample records failed to count records inside inlined profiles. This change fixes the oversight. llvm-svn: 251752
* [X86] Replace getScalarType with getVectorElementType when the type is ↵Craig Topper2015-10-311-29/+29
| | | | | | already known to be a vector. This should result in slightly less code. NFC llvm-svn: 251751
* Don't store a Child to the first regular member.Rafael Espindola2015-10-312-9/+24
| | | | | | | | | | This is a bit ugly, but has a few advantages: * Archive is now easy to copy since there is no Archive -> Child -> Archive loop. * It makes it clear that we already checked for errors when finding the Child data. llvm-svn: 251750
* Delete dead code.Rafael Espindola2015-10-311-8/+0
| | | | llvm-svn: 251749
* Simplify handling of archive Symbol tables.Rafael Espindola2015-10-313-23/+18
| | | | | | We only need to store a StringRef. llvm-svn: 251748
* [SimplifyLibCalls] Add test to ensure transform is not executed if fast-mathDavide Italiano2015-10-311-0/+25
| | | | | | | | | | | | | | | attribute is not present. During my refactor in r251595 I changed the behavior of optimizeSqrt(), skipping the transformation if the function wasn't marked with unsafe-fp-math attribute. This fixed a bug, as confirmed by Sanjay (before the optimization was silently executed anyway), although it wasn't my primary aim. This commit adds a test to ensure the code doesn't break again. Reported by: Marcello Maggioni Discussed with: Sanjay Patel llvm-svn: 251747
* Simplify the handling of the archive string table.Rafael Espindola2015-10-312-13/+11
| | | | | | We only need to store a StringRef llvm-svn: 251746
* [X86] Convert to MVT instead of calling EVT functions since we already know ↵Craig Topper2015-10-311-2/+2
| | | | | | the type is simple. NFC llvm-svn: 251745
* [X86] Call getScalarSizeInBits() instead of ↵Craig Topper2015-10-311-5/+5
| | | | | | getScalarType().getScalarSizeInBits(). NFC llvm-svn: 251744
* [X86] Remove two const references to the return value of a constructor and ↵Craig Topper2015-10-311-2/+2
| | | | | | just use normal object creation syntax. NFC llvm-svn: 251743
* [X86] Replace EVT with MVT in some more places. NFCCraig Topper2015-10-311-12/+12
| | | | llvm-svn: 251742
* [X86] Fix indentation of case statements in switch. NFCCraig Topper2015-10-311-16/+16
| | | | llvm-svn: 251741
* [X86] Reduce math for index calculation for inserting and extracting ↵Craig Topper2015-10-311-14/+16
| | | | | | subvectors and elements by exploiting the fact that all supported vector types have a power 2 number of elements. llvm-svn: 251740
* [SimplifyLibCalls] Remove dead code.Davide Italiano2015-10-311-6/+0
| | | | llvm-svn: 251737
* Add a unittest for SmallDenseMap that tests assigning a SmallDenseMap when ↵Michael Gottesman2015-10-311-0/+16
| | | | | | | | | | it is not small. This complements CopyConstructorNotSmallTest. If we are testing the copy constructor in such a way, we should also probably test assignment in the same way. llvm-svn: 251736
* Add a sys::OwningMemoryBlock class, which is a sys::MemoryBlock that owns itsLang Hames2015-10-313-38/+50
| | | | | | | | underlying memory, and will automatically release it on destruction. Use this to tidy up the orc::IndirectStubsInfo class. llvm-svn: 251731
* [FunctionAttrs] Inline the prototype attribute inference to an existingChandler Carruth2015-10-311-21/+6
| | | | | | | | loop over the SCC. The separate function wasn't really adding much, NFC. llvm-svn: 251728
* [PM] Port StripDeadPrototypes to the new pass managerJustin Bogner2015-10-308-24/+82
| | | | | | | This is a really straightforward port. Also adds a test for the pass, since it only seemed to be tested tangentially before. llvm-svn: 251726
* [PM] Port ADCE to the new pass managerJustin Bogner2015-10-307-28/+76
| | | | llvm-svn: 251725
* Whitespace. NFCJustin Bogner2015-10-304-8/+6
| | | | llvm-svn: 251724
* PM: Print the IR unit's name in debug output. NFCJustin Bogner2015-10-301-1/+2
| | | | llvm-svn: 251723
* Implemented the code to make llvm-nm’s -g option work.Kevin Enderby2015-10-304-0/+9
| | | | | | | | | | | | | While llvm-nm parses the -g option and has help that describes it as: -extern-only - Show only external symbols There is no code in the program to use the boolean valve it sets from the command line. rdar://23261095 llvm-svn: 251718
* [FunctionAttrs] Separate another chunk of the logic for functionattrsChandler Carruth2015-10-301-10/+16
| | | | | | | | | | | from its pass harness by providing a lambda to query for AA results. This allows the legacy pass to easily provide a lambda that uses the special helpers to construct function AA results from a legacy CGSCC pass. With the new pass manager (the next patch) the lambda just directly wraps the intuitive query API. llvm-svn: 251715
* [WebAssembly] Fix import statementJF Bastien2015-10-302-10/+13
| | | | | | | | | | Summary: Imports should be generated like (param i32 f32...) not (param i32) (param f32) ... Author: binji Reviewers: jfb Subscribers: jfb, dschuff llvm-svn: 251714
* ARM: add extra test for watchOS ABITim Northover2015-10-301-0/+153
| | | | llvm-svn: 251705
OpenPOWER on IntegriCloud