summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Use DW_FORM_sdata for signed constant values and udata on occasionEric Christopher2013-08-271-22/+53
| | | | | | | | | | when we can. Migrate from using blocks when we're adding just a single attribute and floating point values are an unsigned, not signed, bag of bits. Update all test cases accordingly. llvm-svn: 189419
* Option parsing: support case-insensitive option matching.Rui Ueyama2013-08-271-34/+48
| | | | | | | | | | | | | | Link.exe's command line options are case-insensitive. This patch adds a new attribute to OptTable to let the option parser to compare options, ignoring case. Command lines are generally case-insensitive on Windows. CL.exe is an exception. So this new attribute should be useful for other commands running on Windows. Differential Revision: http://llvm-reviews.chandlerc.com/D1485 llvm-svn: 189416
* DIBuilder: take an optional StringRef to pass in unique identifier.Manman Ren2013-08-271-10/+14
| | | | | | | | createClassType, createStructType, createUnionType, createEnumerationType, and createForwardDecl will take an optional StringRef to pass in the unique identifier. llvm-svn: 189410
* DataFlowSanitizer: Implement trampolines for function pointers passed to ↵Peter Collingbourne2013-08-271-3/+77
| | | | | | | | custom functions. Differential Revision: http://llvm-reviews.chandlerc.com/D1503 llvm-svn: 189408
* [ms-inline asm] Support offsets after segment registersDavid Majnemer2013-08-271-40/+70
| | | | | | | | | | | | | | Summary: MASM let's you do stuff like 'MOV FS:20, EAX' and 'MOV EAX, FS:20' Reviewers: craig.topper, rnk Reviewed By: rnk CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1470 llvm-svn: 189407
* Given target assembler parsers a chance to handle variant expressionsJoerg Sonnenberger2013-08-273-3/+35
| | | | | | | first. Use this to turn the PPC modifiers into PPC specific expressions, allowing them to work on constants. llvm-svn: 189400
* Changed commentJack Carter2013-08-271-1/+1
| | | | llvm-svn: 189396
* Refactor 'vectorizeLoop' no functionality change.Nadav Rotem2013-08-271-187/+53
| | | | | | This patch merges LoopVectorize of InnerLoopVectorizer and InnerLoopUnroller by adding checks for VF=1. This helps in erasing the Unroller code that is almost identical to the InnerLoopVectorizer code. llvm-svn: 189391
* [ARMv8] Add MC support for the new load/store acquire/release instructions.Joey Gouly2013-08-275-27/+218
| | | | llvm-svn: 189388
* AVX-512: added conversion instructions.Elena Demikhovsky2013-08-272-19/+214
| | | | llvm-svn: 189349
* DAGCombiner: make sure or/shl/srl really has zero high bits before forming bswapTim Northover2013-08-271-6/+24
| | | | | | | | We want to convert code like (or (srl N, 8), (shl N, 8)) into (srl (bswap N), const), but this is only valid if the bits above 16 on the source pattern are 0, the checks we were doing on this were slightly wrong before. llvm-svn: 189348
* [ARMv8] Add some negative tests for the recent VFP/NEON instructions.Joey Gouly2013-08-272-2/+7
| | | | | | Fix two issues I found while writing these tests. llvm-svn: 189341
* ARM: add natural patterns for vaddhl and vsubhl.Tim Northover2013-08-271-0/+14
| | | | | | | | These instructions aren't particularly complicated and it's well worth having patterns for some reasonably useful LLVM IR that will match them. Soon we should be able to switch Clang over to producing this natural version. llvm-svn: 189335
* [mips][msa] Added spill/reload supportDaniel Sanders2013-08-271-0/+16
| | | | llvm-svn: 189332
* [SystemZ] Extend memcpy and memset support to all constant lengthsRichard Sandiford2013-08-278-81/+239
| | | | | | | | | | | | | | Lengths up to a certain threshold (currently 6 * 256) use a series of MVCs. Lengths above that threshold use a loop to handle X*256 bytes followed by a single MVC to handle the excess (if any). This loop will also be needed in future when support for variable lengths is added. Because the same tablegen classes are used to define MVC and CLC, the patch also has the side-effect of defining a pseudo loop instruction for CLC. That instruction isn't used yet (and wouldn't be handled correctly if it were). I'm planning to use it soon though. llvm-svn: 189331
* [mips][msa] Added bitconverts for vector types for big and little-endianDaniel Sanders2013-08-272-2/+151
| | | | llvm-svn: 189330
* Add support for DebugFission to DWARF parserAlexey Samsonov2013-08-276-85/+246
| | | | | | | | | | | | | | | | | | | Summary: 1) Make llvm-symbolizer properly symbolize files with split debug info (by using stanalone .dwo files). 2) Make DWARFCompileUnit parse and store corresponding .dwo file, if necessary. 3) Make bits of DWARF parsing more CompileUnit-oriented. Reviewers: echristo Reviewed By: echristo CC: bkramer, llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1164 llvm-svn: 189329
* AVX-512: Added FMA instructions.Elena Demikhovsky2013-08-272-1/+198
| | | | llvm-svn: 189326
* Fix the build issue under ia64. Close bug #5715Sylvestre Ledru2013-08-272-2/+2
| | | | | | Thanks to Luca Falavigna for the help and most of the patch. llvm-svn: 189324
* Revert "Fix the build broken by r189315." and "Move everything depending on ↵Charles Davis2013-08-2713-701/+696
| | | | | | | | | Object/MachOFormat.h over to Support/MachO.h." This reverts commits r189319 and r189315. r189315 broke some tests on what I believe are big-endian platforms. llvm-svn: 189321
* Move everything depending on Object/MachOFormat.h over to Support/MachO.h.Charles Davis2013-08-2713-696/+701
| | | | llvm-svn: 189315
* Support/MachO: Add a bunch of defines.Charles Davis2013-08-272-27/+27
| | | | | | | | Right now we have two headers for the Mach-O format. I'd like to get rid of one. Since the other object formats are all in Support, I chose to keep the Mach-O header in Support, and discard the other one. llvm-svn: 189314
* Fixed typo.Michael Gottesman2013-08-271-1/+1
| | | | | | Noticed by Stephen Checkoway <s@pahtak.org>. llvm-svn: 189312
* Fix wrong code offset for unwind code SET_FPREG.Kai Nacke2013-08-272-4/+5
| | | | | | | | | | | | The code offset for unwind code SET_FPREG is wrong because it is set to constant 0. The fix is to do the same as for the other unwind codes: emit a label and later the absolute difference between the label and the begin of the prologue. Also enables the failing test case MC/COFF/seh.s Reviewed by Jim Grosbach, Charles Davis and Nico Rieck. llvm-svn: 189309
* Remove an over-zealous assertion. A pointer type could be illegal if the ↵Owen Anderson2013-08-271-1/+0
| | | | | | target is prepared to custom-legalize pointer operands. This assertion was evaluated before the target would have a chance to do so, making it impossible. llvm-svn: 189299
* Formatting.Eric Christopher2013-08-261-10/+10
| | | | llvm-svn: 189296
* Make the lifetime of the DICompileUnit we're constructing from theEric Christopher2013-08-261-2/+1
| | | | | | MDNode more clear as just for a single argument. llvm-svn: 189294
* Have the skeleton compile unit construction method take the CU itEric Christopher2013-08-262-6/+6
| | | | | | | | | | is constructing from as an input and keep the same unique identifier. We can use this to connect items which must stay in the .o file (e.g. pubnames and pubtypes) to the skeleton cu rather than having duplicate unique numbers for the sections and needing to do lookups based on MDNode. llvm-svn: 189293
* Remove duplicate set of CompilationDir.Eric Christopher2013-08-261-1/+0
| | | | llvm-svn: 189292
* Remove the language parameter and variable from the compile unit. WeEric Christopher2013-08-263-16/+16
| | | | | | can get it via the MDNode that's passed in. Save that instead. llvm-svn: 189291
* Fix lint assert on integer vector divisionMatt Arsenault2013-08-261-6/+34
| | | | llvm-svn: 189290
* Treat the pubtypes section similarly to the pubnames section and emitEric Christopher2013-08-262-17/+20
| | | | | | | | | it by default under linux or when we're trying to keep compatibility with old gdb versions. Fix testcase for option name change. llvm-svn: 189289
* Only emit the section sym if we're emitting the section.Eric Christopher2013-08-261-1/+2
| | | | llvm-svn: 189288
* Fix inserting instructions before last in bundle.Matt Arsenault2013-08-261-16/+20
| | | | | | | | | | | The builder inserts from before the insert point, not after, so this would insert before the last instruction in the bundle instead of after it. I'm not sure if this can actually be a problem with any of the current insertions. llvm-svn: 189285
* Debug Info: add an identifier field to DICompositeType.Manman Ren2013-08-262-10/+37
| | | | | | | | | | | | | | | | | | DICompositeType will have an identifier field at position 14. For now, the field is set to null in DIBuilder. For DICompositeTypes where the template argument field (the 13th field) was optional, modify DIBuilder to make sure the template argument field is set. Now DICompositeType has 15 fields. Update DIBuilder to use NULL instead of "i32 0" for null value of a MDNode. Update verifier to check that DICompositeType has 15 fields and the last field is null or a MDString. Update testing cases to include an extra field for DICompositeType. The identifier field will be used by type uniquing so a front end can genearte a DICompositeType with a unique identifer. llvm-svn: 189282
* LoopVectorize: Implement partial loop unrolling when vectorization is not ↵Nadav Rotem2013-08-261-167/+495
| | | | | | | | | | | | | | | | profitable. This patch enables unrolling of loops when vectorization is legal but not profitable. We add a new class InnerLoopUnroller, that extends InnerLoopVectorizer and replaces some of the vector-specific logic with scalars. This patch does not introduce any runtime regressions and improves the following workloads: SingleSource/Benchmarks/Shootout/matrix -22.64% SingleSource/Benchmarks/Shootout-C++/matrix -13.06% External/SPEC/CINT2006/464_h264ref/464_h264ref -3.99% SingleSource/Benchmarks/Adobe-C++/simple_types_constant_folding -1.95% llvm-svn: 189281
* Fix thinko.Eric Christopher2013-08-261-1/+1
| | | | llvm-svn: 189279
* ARM: Constrain regclass for TSTri instruction.Jim Grosbach2013-08-261-0/+2
| | | | | | | | | Get the register class right for the TST instruction. This keeps the machine verifier happy, enabling us to turn it on for another test. rdar://12594152 llvm-svn: 189274
* Dummy code to silence warning from 4189266Bill Schmidt2013-08-262-0/+11
| | | | llvm-svn: 189272
* ARM: FastISel verifier error cleanup.Jim Grosbach2013-08-261-0/+7
| | | | | | | | | Constant pool and global value reference instructions need more restricted register classes than plain GPR. rdar://12594152 llvm-svn: 189270
* ARM: Fix ELF global base reg intialization.Jim Grosbach2013-08-261-3/+8
| | | | | | | | | | | | | | | | | | The create machine code wasn't properly in SSA, which the machine verifier properly complains about. Now that fast-isel is closer to verifier clean, errors like this show up more clearly. Additionally, the Thumb pseudo tPICADD was used for both ARM and Thumb mode functions, which is obviously wrong. Fix that along the way. Test case is part of the following commit which will finish making an additional fast-isel test verifier clean an enable it for the regression test suite. This commit is separate since its not just a verifier cleanup, but an actual correctness issue. rdar://12594152 (for the fast-isel verifier aspects) llvm-svn: 189269
* [PowerPC] More fast-isel chunks (returns and integer extends)Bill Schmidt2013-08-263-3/+255
| | | | | | | | | | | | | | | | | Incremental improvement to fast-isel for PPC64. This allows us to select on ret, sext, and zext. Filling in sext/zext improves some of the existing logic in handling compare-immediates that needed extends. A simplified return convention for fast-isel is also added to the PPC64 calling conventions. All call/return processing for DAG selection is handled with custom code, so there isn't an existing CC to rely on here. The include of PPCGenCallingConv.inc causes compiler warnings due to the 32-bit calling conventions that are not used, so the dummy function "usePPC32CCs()" is added here to silence those. Test cases for the return and extend logic are added. llvm-svn: 189266
* test commit. Remove blank lineYi Jiang2013-08-261-1/+0
| | | | llvm-svn: 189265
* Fix unused variable in release buildMatt Arsenault2013-08-261-3/+2
| | | | llvm-svn: 189264
* Constify functionsMatt Arsenault2013-08-261-6/+8
| | | | llvm-svn: 189234
* Vectorize starting from insertelements building a vectorMatt Arsenault2013-08-261-3/+57
| | | | llvm-svn: 189233
* SelectionDAG: Remove unnecessary uses of TargetLowering::getPointerTy()Tom Stellard2013-08-267-43/+50
| | | | | | | | | | | | If we have a binary operation like ISD:ADD, we can set the result type equal to the result type of one of its operands rather than using TargetLowering::getPointerTy(). Also, any use of DAG.getIntPtrConstant(C) as an operand for a binary operation can be replaced with: DAG.getConstant(C, OtherOperand.getValueType()); llvm-svn: 189227
* R600: Add support for vector local memory loadsTom Stellard2013-08-264-0/+50
| | | | llvm-svn: 189226
* R600: Add support for i8 and i16 local memory loadsTom Stellard2013-08-264-16/+59
| | | | llvm-svn: 189225
* SelectionDAG: Use correct pointer size when splitting vector storesTom Stellard2013-08-261-1/+1
| | | | llvm-svn: 189224
OpenPOWER on IntegriCloud