summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [PPC]: Fix bug in getMultiarchTriple.Douglas Katzman2015-06-265-18/+35
| | | | | | | | And generally prefer not to restate TargetTriple.str() over and over. Differential Revision: http://reviews.llvm.org/D10605 llvm-svn: 240808
* Delete dead code. NFC.Rafael Espindola2015-06-261-7/+0
| | | | llvm-svn: 240807
* COFF: Align DLL import thunks on 16-byte boundaries.Rui Ueyama2015-06-264-10/+16
| | | | llvm-svn: 240806
* Add op_values() to iterate over the SDValue operands of an SDNode.Pete Cooper2015-06-262-2/+18
| | | | | | | | | | SDNode already had ops() which would iterate over the operands and return SDUse*. This version instead gets the SDValue's out of the SDUse's so that we can use foreach in more places. Reviewed by David Blaikie. llvm-svn: 240805
* Move VectorUtils from Transforms to Analysis to correct layering violationDavid Blaikie2015-06-267-5/+5
| | | | llvm-svn: 240804
* Fixed incorrect application of expectedFlakeyVince Harron2015-06-261-1/+1
| | | | llvm-svn: 240803
* COFF: Fix README.Rui Ueyama2015-06-261-2/+2
| | | | llvm-svn: 240802
* Avoid false positive/negative test results from line directive interference.NFC.Chad Rosier2015-06-261-5/+8
| | | | | | | http://reviews.llvm.org/D10443 Patch by Geoff Berry. llvm-svn: 240801
* [static analyzer] Analyzer is skipping forward declared C/C++ functionsAnna Zaks2015-06-265-1/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | A patch by Karthik Bhat! This patch fixes a regression introduced by r224398. Prior to r224398 we were able to analyze the following code in test-include.c and report a null deref in this case. But post r224398 this analysis is being skipped. E.g. // test-include.c #include "test-include.h" void test(int * data) { data = 0; *data = 1; } // test-include.h void test(int * data); This patch uses the function body (instead of its declaration) as the location of the function when deciding if the Decl should be analyzed with path-sensitive analysis. (Prior to r224398, the call graph was guaranteed to have a definition when available.) llvm-svn: 240800
* [ARM] Cortex-R5 is not VFPOnlySPJaved Absar2015-06-262-2/+2
| | | | | | | | | | | | | This patch fixes the error in ARM.td which stated that Cortex-R5 floating point unit can do only single precision, when it can do double as well. Reviewers: rengolin Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10769 llvm-svn: 240799
* [LAA] Try to prove non-wrapping of pointers if SCEV cannotAdam Nemet2015-06-262-1/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Scalar evolution does not propagate the non-wrapping flags to values that are derived from a non-wrapping induction variable because the non-wrapping property could be flow-sensitive. This change is a first attempt to establish the non-wrapping property in some simple cases. The main idea is to look through the operations defining the pointer. As long as we arrive to a non-wrapping AddRec via a small chain of non-wrapping instruction, the pointer should not wrap either. I believe that this essentially is what Andy described in http://article.gmane.org/gmane.comp.compilers.llvm.cvs/220731 as the way forward. Reviewers: aschwaighofer, nadav, sanjoy, atrick Reviewed By: atrick Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10472 llvm-svn: 240798
* Fix unused variable from r240792.Alex Lorenz2015-06-261-0/+1
| | | | | | | The variable 'I' wasn't used when assertions were disabled. This commit ensures that 'I' is used outside of an assert. llvm-svn: 240797
* [DAGCombine] Fix demanded bits computation for exact shifts.Benjamin Kramer2015-06-262-1/+32
| | | | | | Fixes a miscompilation of MultiSource/Benchmarks/MallocBench/gs llvm-svn: 240796
* [X86]: Correctly sign-extend 16-bit immediate in CALL instruction.Douglas Katzman2015-06-264-1/+18
| | | | | | | | Patch by Matthew Barney. Thanks! Differential Revision: http://reviews.llvm.org/D9514 llvm-svn: 240795
* Fix ODR violation waiting to happen by making static function definitions in ↵David Blaikie2015-06-263-175/+240
| | | | | | | | | | VectorUtils.h non-static and defined out of line Patch by Ashutosh Nema Differential Revision: http://reviews.llvm.org/D10682 llvm-svn: 240794
* Revert r240762 "[X86] Cleanup X86WindowsTargetObjectFile::getSectionForConstant"Hans Wennborg2015-06-261-25/+37
| | | | | | It seems to have caused PR23966: "UNREACHABLE executed at ..\lib\Target\X86\X86TargetObjectFile.cpp:148" llvm-svn: 240793
* MIR Serialization: Serialize machine basic block operands.Alex Lorenz2015-06-2625-39/+417
| | | | | | | | | | | | | | | | | | | | | | | | | This commit serializes machine basic block operands. The machine basic block operands use the following syntax: %bb.<id>[.<name>] This commit also modifies the YAML representation for the machine basic blocks - a new, required field 'id' is added to the MBB YAML mapping. The id is used to resolve the MBB references to the actual MBBs. And while the name of the MBB can be included in a MBB reference, this name isn't used to resolve MBB references - as it's possible that multiple MBBs will reference the same BB and thus they will have the same name. If the name is specified, the parser will verify that it is equal to the name of the MBB with the specified id. Reviewers: Duncan P. N. Exon Smith Differential Revision: http://reviews.llvm.org/D10608 llvm-svn: 240792
* clang-format some of the files in lib/Driver. NFCDouglas Katzman2015-06-264-1540/+1338
| | | | | | | | | Nothing was hand edited afterward except a few literal strings and comments that were poorly broken. Differential Revision: http://reviews.llvm.org/D10689 llvm-svn: 240791
* ELF: Simplify the rel/rela implementation.Rafael Espindola2015-06-261-73/+30
| | | | | | Now the rela class inherits from rel and just adds the addend. llvm-svn: 240790
* Added expectedFlakey test decoratorVince Harron2015-06-2615-15/+80
| | | | | | | | | | | | | | | | | SUMMARY Flakey tests get two chances to pass Also, switched a bunch of tests to use new decorator. TEST PLAN Add one of these decorators to a test Edit a test to pass on the first invocation, confirm test appears as pass Edit a test to pass on the first invocation, pass on the second, confirm test appears as xfail Edit a test to fail on two consecutive runs, confirm test appears in results as fail/error Differential Revision: http://reviews.llvm.org/D10721 llvm-svn: 240789
* [DAGCombiner] Preserve the exact bit when simplifying SRA to SRL.Benjamin Kramer2015-06-262-4/+17
| | | | | | Allows more aggressive folding of ashr/shl pairs. llvm-svn: 240788
* [DAGCombine] fold (X >>?,exact C1) << C2 --> X << (C2-C1)Benjamin Kramer2015-06-262-0/+65
| | | | | | | Instcombine also does this but many opportunities only become visible after GEPs are lowered. llvm-svn: 240787
* Silencing spurious MSVC C4189 warnings regarding local variables that are ↵Aaron Ballman2015-06-261-4/+4
| | | | | | initialized but not used; NFC. This bug has been reported to Microsoft (https://connect.microsoft.com/VisualStudio/feedback/details/1475983). llvm-svn: 240786
* Rename getObjectFile to getObject for consistency.Rafael Espindola2015-06-266-10/+10
| | | | llvm-svn: 240785
* Simplify isSymbolList64Bit. NFC.Rafael Espindola2015-06-261-9/+1
| | | | llvm-svn: 240784
* Simplify isObject. NFC.Rafael Espindola2015-06-261-19/+5
| | | | llvm-svn: 240783
* [mips] [IAS] Add partial support for the ULW pseudo-instruction.Toma Tabacu2015-06-266-0/+327
| | | | | | | | | | | | | | | | Summary: This only adds support for ULW of an immediate address with/without a source register. It does not include support for ULW of the address of a symbol. Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9663 llvm-svn: 240782
* Update for llvm changes.Rafael Espindola2015-06-261-3/+1
| | | | llvm-svn: 240781
* Implement elf_section_iterator and getELFType().Rafael Espindola2015-06-262-21/+37
| | | | | | And with those, simplify getSymbolNMTypeChar. llvm-svn: 240780
* Expose getFlags via ELFSectionRef.Rafael Espindola2015-06-262-14/+15
| | | | llvm-svn: 240779
* Add a ELFSectionRef class and use it to expose getSectionType.Rafael Espindola2015-06-262-8/+23
| | | | llvm-svn: 240778
* Simplify getSymbolType.Rafael Espindola2015-06-2614-104/+55
| | | | | | | | This is still a really odd function. Most calls are in object format specific contexts and should probably be replaced with a more direct query, but at least now this is not too obnoxious to use. llvm-svn: 240777
* [ARM] Cortex-R4F is not VFPOnlySPJaved Absar2015-06-262-2/+2
| | | | | | | | | | | | | Cortex-R4F TRM states that fpu supports both single and double precision. This patch corrects the information in ARM.td file and corresponding test. Reviewers: rengolin Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10763 llvm-svn: 240776
* Drop divs before adding array-out-of-bounds assumptionsTobias Grosser2015-06-261-0/+6
| | | | | | | | | | | | | | | | | | In case we have modulo operations in the access function (supported since r240518), the assumptions generated to ensure array accesses remain within bounds can contain existentially quantified dimensions which results in more complex and more difficult to handle integer sets. As a result LNT's linpack benchmark started to fail due to excessive compile time. We now just drop the existentially quantified dimensions. This should be generally save, but may result in less precise assumptions which may consequently make us fall back to the original (unoptimized) code more often. In practice, these cases probably do not appear to often. I had difficulties to extract a good test case, but fortunately our LNT bots cover this one well. llvm-svn: 240775
* Make getOther ELF only.Rafael Espindola2015-06-263-17/+10
| | | | | | No other format has this field. llvm-svn: 240774
* Optimize the creation of mapping symbols.Rafael Espindola2015-06-262-19/+2
| | | | | | No need to create two symbols just to assign one to the other. llvm-svn: 240773
* [NativeProcessLinux] Use lambdas in DoOperation callsPavel Labath2015-06-268-1055/+454
| | | | | | | | | | | | | | | | | | | Summary: This removes a lot of boilerplate, which was needed to execute monitor operations. Previously one needed do declare a separate class for each operation which would manually capture all needed arguments, which was very verbose. In addition to less code, I believe this also makes the code more readable, since now the implementation of the operation can be physically closer to the code that invokes it. Test Plan: Code compiles on x86, arm and mips, tests pass on x86 linux. Reviewers: tberghammer, chaoren Subscribers: aemerson, lldb-commits Differential Revision: http://reviews.llvm.org/D10694 llvm-svn: 240772
* Do not ignore projects/LLVMBuild.txt in git repoSergey Dmitrouk2015-06-261-0/+1
| | | | | | Without explicit exception for the path, it matches projects/* rule. llvm-svn: 240771
* Add branch emulation to aarch64 instruction emulatorTamas Berghammer2015-06-264-48/+396
| | | | | | | | | The emulation of the branches are required by the new stack unwinding logic to reinstantiate the prologue at the right place. Differential revision: http://reviews.llvm.org/D10702 llvm-svn: 240769
* XML register info fixEwan Crawford2015-06-262-5/+5
| | | | | | | | | | | | | | | | | | There are a couple of bugs in the XML register info handling which this patch fixes: + conflicting variable names in lambda, both capture list and parameters contains a variable called 'name'. + prev_reg_num, which sets the register number, should be incremented after each register is processed. + Windows errors regarding empty strings and the 'xi:' prefix disappearing from 'xi:include' node name. Reviewers: clayborg Subscribers: lldb-commits, deepak2427 Differential Revision: http://reviews.llvm.org/D10731 llvm-svn: 240768
* [libsanitizer] Delete the unused GetBinaryName() function.Alexander Potapenko2015-06-262-5/+0
| | | | llvm-svn: 240767
* Remove code for scalar and PHI to array translationTobias Grosser2015-06-2649-569/+76
| | | | | | | | | | | | | | | | This removes old code that has been disabled since several weeks and was hidden behind the flags -disable-polly-intra-scop-scalar-to-array=false and -polly-model-phi-nodes=false. Earlier, Polly used to translate scalars and PHI nodes to single element arrays, as this avoided the need for their special handling in Polly. With Johannes' patches adding native support for such scalar references to Polly, this code is not needed any more. After this commit both -polly-prepare and -polly-independent are now mostly no-ops. Only a couple of simple transformations still remain, but they are scheduled for removal too. Thanks again to Johannes Doerfert for his nice work in making all this code obsolete. llvm-svn: 240766
* [Mips] Reject R_MIPS_CALL16 against local symbolsSimon Atanasyan2015-06-262-14/+89
| | | | llvm-svn: 240765
* [Mips] Use helper functions to determine relocations purposeSimon Atanasyan2015-06-261-126/+91
| | | | | | | | That allows to remove duplicated long switch/case statements. No functional changes. llvm-svn: 240764
* [Mips] Create LA25 stubs for all branch relocationsSimon Atanasyan2015-06-265-34/+629
| | | | llvm-svn: 240763
* [X86] Cleanup X86WindowsTargetObjectFile::getSectionForConstantDavid Majnemer2015-06-261-37/+25
| | | | | | No functionality changed, just keeping things clean. llvm-svn: 240762
* [ObjC] Add NSValue support for objc_boxed_expressionsAlex Denisov2015-06-2622-53/+392
| | | | | | | | | | | | | Patch extends ObjCBoxedExpr to accept records (structs and unions): typedef struct __attribute__((objc_boxable)) _Color { int r, g, b; } Color; Color color; NSValue *boxedColor = @(color); // [NSValue valueWithBytes:&color objCType:@encode(Color)]; llvm-svn: 240761
* [InterleavedAccess] Fix failures "undefined type 'llvm::raw_ostream'" on ↵Hao Liu2015-06-261-0/+1
| | | | | | windows. llvm-svn: 240760
* COFF: Update README with the latest performance numbers.Rui Ueyama2015-06-261-7/+31
| | | | llvm-svn: 240759
* COFF: Add a test for r240719.Rui Ueyama2015-06-261-0/+36
| | | | llvm-svn: 240758
OpenPOWER on IntegriCloud