summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Strength reduce constant-sized vectors into arrays. No functionality change.Benjamin Kramer2014-10-222-10/+8
| | | | llvm-svn: 220412
* Do not add -gsplit-dwarf to LLVM_DEFINITIONS.Peter Collingbourne2014-10-221-1/+1
| | | | | | | | | | This would cause the flag to appear in the output of "llvm-config --cppflags", which should contain only preprocessor flags. The -gsplit-dwarf flag in particular can cause problems with certain downstream users such as cgo. Differential Revision: http://reviews.llvm.org/D5895 llvm-svn: 220410
* LoopVectorize: Simplify code. No functionality change.Benjamin Kramer2014-10-221-19/+7
| | | | llvm-svn: 220405
* Shorten auto iterators for function basic blocks.Diego Novillo2014-10-221-37/+36
| | | | | | | | Use consistent naming for basic block instances. No functional changes. llvm-svn: 220404
* Fix number of operands in documentation for minnum / maxnumMatt Arsenault2014-10-221-10/+10
| | | | llvm-svn: 220402
* test: Make this test runnable in directories with @ in their namesJustin Bogner2014-10-221-1/+1
| | | | | | | | Jenkins likes to use directories with names involving the '@' character, which breaks the sed expression in this test. Switch to use '|' on the assumption that it's less likely to show up in a path. llvm-svn: 220401
* Fix VS2012 build; C++11 type aliases are not supported.Hans Wennborg2014-10-221-1/+2
| | | | llvm-svn: 220399
* Ammending 220393 - Removing unused decoding tables.Colin LeMahieu2014-10-221-18/+0
| | | | llvm-svn: 220397
* Ammending 220393 - Removing unused functions.Colin LeMahieu2014-10-221-33/+0
| | | | llvm-svn: 220396
* [PATCH] Support select-cc for VSFRC when VSX is enabledBill Schmidt2014-10-224-5/+47
| | | | | | | | | | | | | | A previous patch enabled SELECT_VSRC and SELECT_CC_VSRC for VSX to handle <2 x double> cases. This patch adds SELECT_VSFRC and SELECT_CC_VSFRC to allow use of all 64 vector-scalar registers for the f64 type when VSX is enabled. The changes are analogous to those in the previous patch. I've added a new variant to vsx.ll to test the code generation. (I also cleaned up a little formatting in PPCInstrVSX.td from the previous patch.) llvm-svn: 220395
* Use auto iteration in lib/Transforms/Scalar/SampleProfile.cpp. No functional ↵Diego Novillo2014-10-221-18/+15
| | | | | | changes. llvm-svn: 220394
* [Hexagon] Adding basic disassembler.Colin LeMahieu2014-10-2210-44/+238
| | | | | | | Marking all instructions as CodeGenOnly since encoding bits are not set yet. http://reviews.llvm.org/D5829?vs=on&id=15023&whitespace=ignore-all#toc llvm-svn: 220393
* Preserving 'nonnull' metadata in SimplifyCFGPhilip Reames2014-10-221-1/+4
| | | | | | | | | | When we hoist two loads above an if, we can preserve the nonnull metadata. We could also do the same for sinking them, but we appear to not handle metadata at all in that case. Thanks to Hal for the review. Differential Revision: http://reviews.llvm.org/D5910 llvm-svn: 220392
* Shrinkify libcalls: use float versions of double libm functions with ↵Sanjay Patel2014-10-224-114/+131
| | | | | | | | | | | | | | | | | | | | | | | | fast-math (bug 17850) When a call to a double-precision libm function has fast-math semantics (via function attribute for now because there is no IR-level FMF on calls), we can avoid fpext/fptrunc operations and use the float version of the call if the input and output are both float. We already do this optimization using a command-line option; this patch just adds the ability for fast-math to use the existing functionality. I moved the cl::opt from InstructionCombining into SimplifyLibCalls because it's only ever used internally to that class. Modified the existing test cases to use the unsafe-fp-math attribute rather than repeating all tests. This patch should solve: http://llvm.org/bugs/show_bug.cgi?id=17850 Differential Revision: http://reviews.llvm.org/D5893 llvm-svn: 220390
* Make two helper functions static.Rafael Espindola2014-10-221-2/+2
| | | | llvm-svn: 220389
* Change error to warning when a profile cannot be found.Diego Novillo2014-10-222-3/+5
| | | | | | | | When the profile for a function cannot be applied, we use to emit an error. This seems extreme. The compiler can continue, it's just that the optimization opportunities won't include profile information. llvm-svn: 220386
* [PowerPC] Support select-cc for VSXBill Schmidt2014-10-223-3/+40
| | | | | | | | | | | | | | | | | | | | | | | | | The tests test/CodeGen/Generic/select-cc.ll and test/CodeGen/PowerPC/select-cc.ll both fail with VSX enabled. The problem is that the lowering logic for the SELECT and SELECT_CC operations doesn't currently support the VSX registers. This patch fixes that. In lib/Target/PowerPC/PPCInstrInfo.td, we have pseudos to handle this for other register classes. Similar pseudos are added in PPCInstrVSX.td (they must be there, because the "vsrc" register class definition appears there) for the VSRC register class. The SELECT_VSRC pseudo is then used in pattern matching for SELECT_CC. The rest of the patch just adds logic for SELECT_VSRC wherever similar logic appears for SELECT_VRRC. There are no new test cases because the existing tests above test this, along with a variant in test/CodeGen/PowerPC/vsx.ll. After discussion with Hal, a future patch will add similar _VSFRC variants to override f64 type handling (currently using F8RC). llvm-svn: 220385
* Fixing a -Wsign-compare warning; NFC.Aaron Ballman2014-10-221-1/+2
| | | | | | I think it might make sense to make COFF::MaxNumberOfSections16 be a uint32_t, however, that may have wider-reaching implications in other projects, which is why I did not change that declaration. llvm-svn: 220384
* Support using sample profiles with partial debug info.Diego Novillo2014-10-222-14/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: When using a profile, we used to require the use -gmlt so that we could get access to the line locations. This is used to match line numbers in the input profile to the line numbers in the function's IR. But this is actually not necessary. The driver can provide source location tracking without the emission of debug information. In these cases, the annotation 'llvm.dbg.cu' is missing from the IR, but the actual line location annotations are still present. This patch adds a new way of looking for the start of the current function. Instead of looking through the compile units in llvm.dbg.cu, we can walk up the scope for the first instruction in the function with a debug loc. If that describes the function, we use it. Otherwise, we keep looking until we find one. If no such instruction is found, we then give up and produce an error. Reviewers: echristo, dblaikie Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5887 llvm-svn: 220382
* [AArch64] Cleanup A57PBQPConstraintsArnaud A. de Grandmaison2014-10-224-48/+154
| | | | | | And add a long awaited testcase. llvm-svn: 220381
* [InstSimplify] Support constant folding to vector of pointersBruno Cardoso Lopes2014-10-222-2/+47
| | | | | | | | | | | | | | | | | | | ConstantFolding crashes when trying to InstSimplify the following load: @a = private unnamed_addr constant %mst { i8* inttoptr (i64 -1 to i8*), i8* inttoptr (i64 -1 to i8*) }, align 8 %x = load <2 x i8*>* bitcast (%mst* @a to <2 x i8*>*), align 8 This patch fix this by adding support to this type of folding: %x = load <2 x i8*>* bitcast (%mst* @a to <2 x i8*>*), align 8 ==> gets folded to: %x = <2 x i8*> <i8* inttoptr (i64 -1 to i8*), i8* inttoptr (i64 -1 to i8*)> llvm-svn: 220380
* [Thumb/Thumb2] Implement restrictions on SP in register list on LDM, STM ↵Jyoti Allur2014-10-222-2/+69
| | | | | | variants in thumb mode llvm-svn: 220379
* [OCaml] Fix a typo in documentation.Peter Zotov2014-10-221-1/+1
| | | | llvm-svn: 220377
* R600/SI: Add another failing testcase for i1 copiesMatt Arsenault2014-10-221-0/+21
| | | | | | It's not handling phis. llvm-svn: 220371
* R600/SI: Add failing testcase reduced from OpenCVMatt Arsenault2014-10-221-0/+22
| | | | | | | This fails the verifier with: "Expected a VCSrc_32 register, but got a VReg_1 register" llvm-svn: 220368
* Handle spaces and quotes in file names in MRI scripts.Rafael Espindola2014-10-222-1/+4
| | | | llvm-svn: 220364
* Fix a gcc warning.Rafael Espindola2014-10-221-1/+1
| | | | | | Thanks to Filipe Cabecinhas for the report. llvm-svn: 220361
* Silence gcc's -WcommentFilipe Cabecinhas2014-10-221-15/+17
| | | | | | | | gcc's (4.7, I think) -Wcomment warning is not "as smart" as clang's and warns even if the line right after the backslash-newline sequence only has a line comment that starts at the beginning of the line. llvm-svn: 220360
* [lit] Fix Python-3 compatibility, patch by Dan Liew.Daniel Dunbar2014-10-221-2/+2
| | | | llvm-svn: 220357
* [lit] Bump version number.Daniel Dunbar2014-10-221-1/+1
| | | | llvm-svn: 220355
* Fix ShTest parsing error when a keyword line doesn't end with a newline.Daniel Dunbar2014-10-221-0/+4
| | | | llvm-svn: 220354
* Fix typoMatt Arsenault2014-10-221-1/+1
| | | | llvm-svn: 220353
* Try to fix documentation bot warningMatt Arsenault2014-10-221-2/+2
| | | | llvm-svn: 220352
* [msan] Handle param-tls overflow.Evgeniy Stepanov2014-10-221-14/+34
| | | | | | | | ParamTLS (shadow for function arguments) is of limited size. This change makes all arguments that do not fit unpoisoned, and avoids writing past the end of a TLS buffer. llvm-svn: 220351
* Revert "Teach the load analysis to allow finding available values which ↵Hans Wennborg2014-10-217-136/+18
| | | | | | | | require" (r220277) This seems to have caused PR21330. llvm-svn: 220349
* [MCJIT] Defer application of AArch64 MachO GOT relocations until resolve time.Lang Hames2014-10-212-6/+6
| | | | | | | | | | On AArch64, GOT references are page relative (ADRP + LDR), so they can't be applied until we know exactly where, within a page, the GOT entry will be in the target address space. Fixes <rdar://problem/18693976>. llvm-svn: 220347
* MRI scripts: Add addlib support.Rafael Espindola2014-10-212-1/+37
| | | | llvm-svn: 220346
* LTO: respect command-line options that disable vectorization.JF Bastien2014-10-211-2/+4
| | | | | | | | | | | | Summary: Patches 202051 and 208013 added calls to LTO's PassManager which unconditionally add LoopVectorizePass and SLPVectorizerPass instead of following the logic in PassManagerBuilder::populateModulePassManager and honoring the -vectorize-loops -run-slp-after-loop-vectorization flags. Reviewers: nadav, aschwaighofer, yijiang Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5884 llvm-svn: 220345
* Use a range loop. NFC.Rafael Espindola2014-10-211-7/+6
| | | | llvm-svn: 220344
* Add minnum / maxnum codegenMatt Arsenault2014-10-2126-6/+1065
| | | | llvm-svn: 220342
* Add minnum / maxnum intrinsicsMatt Arsenault2014-10-2114-2/+773
| | | | | | | | | | | | These are named following the IEEE-754 names for these functions, rather than the libm fmin / fmax to avoid possible ambiguities. Some languages may implement something resembling fmin / fmax which return NaN if either operand is to propagate errors. These implement the IEEE-754 semantics of returning the other operand if either is a NaN representing missing data. llvm-svn: 220341
* IR: Reorder metadata bitcode serialization, NFCDuncan P. N. Exon Smith2014-10-211-12/+14
| | | | | | | | | Enumerate `MDNode`'s operands *before* the node itself, so that the reader requires less RAUW. Although this will cause different code paths to be hit in the reader, this should effectively be no functionality change. llvm-svn: 220340
* R600/SI: Add missing parameter to div_fmas intrinsicMatt Arsenault2014-10-213-7/+9
| | | | llvm-svn: 220338
* IR: Remove dead code in metadata bitcode writing, NFCDuncan P. N. Exon Smith2014-10-213-16/+12
| | | | | | | No one cares how many uses each metadata value has, so don't bother counting. llvm-svn: 220337
* Overwrite instead of adding to archives when creating them in mri scripts.Rafael Espindola2014-10-212-67/+93
| | | | | | | This matches the behavior of GNU ar and also makes it easier to implemnt support for the addlib command. llvm-svn: 220336
* Pacify bots and simplify r220321Arnaud A. de Grandmaison2014-10-211-1/+1
| | | | llvm-svn: 220335
* Convert a few std::string with StringRef. NFC.Rafael Espindola2014-10-211-24/+30
| | | | | | | | | This is a micro optimization, but also makes the code a bit more flexible. The MRIMembers variable is a short term hack. It is going away in the next commit. llvm-svn: 220334
* GCC has supported C++11 ref-qualifiers since 4.8.1Reid Kleckner2014-10-212-25/+29
| | | | | | | | | | | | This requires incorporating __GNUC_PATCHLEVEL__ into our prerequisite check, and renaming our __GNUC_PREREQ to LLVM_GNUC_PREREQ, since it is now functionally different. Patch by Chilledheart! Differential Revision: http://reviews.llvm.org/D5879 llvm-svn: 220332
* R600: Use default GlobalDirectiveMatt Arsenault2014-10-212-1/+14
| | | | | | | The overridden one wasn't inserting a space, so you would end up with .globalfoo llvm-svn: 220329
* Use a StringRef. No functionality change.Rafael Espindola2014-10-211-5/+4
| | | | llvm-svn: 220327
OpenPOWER on IntegriCloud