summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* [LoopReroll] Alter the data structures used during reroll validation.James Molloy2015-01-291-159/+207
| | | | | | | | | | | | | | | The validation algorithm used an incremental approach, building each iteration's data structures temporarily, validating them, then adding them to a global set. This does not scale well to having multiple sets of Root nodes, as the set of instructions used in each iteration is the union over all the root nodes. Therefore, refactor the logic to create a single, simple container to which later logic then refers. This makes it simpler control-flow wise to make the creation of the container more complex with the addition of multiple root sets. llvm-svn: 227499
* [Hexagon] Organizing tests and adding a few missing jump instruction encodings.Colin LeMahieu2015-01-292-1/+33
| | | | llvm-svn: 227498
* [Hexagon] Adding missing instruction encodings and tests.Colin LeMahieu2015-01-292-37/+24
| | | | llvm-svn: 227495
* [Hexagon] Adding alu vector instructionsColin LeMahieu2015-01-292-3/+177
| | | | llvm-svn: 227493
* [GVN] don't propagate equality comparisons of FP zero (PR22376)Sanjay Patel2015-01-291-3/+10
| | | | | | | | | | | | | | In http://reviews.llvm.org/D6911, we allowed GVN to propagate FP equalities to allow some simple value range optimizations. But that introduced a bug when comparing to -0.0 or 0.0: these compare equal even though they are not bitwise identical. This patch disallows propagating zero constants in equality comparisons. Fixes: http://llvm.org/bugs/show_bug.cgi?id=22376 Differential Revision: http://reviews.llvm.org/D7257 llvm-svn: 227491
* All signal handlers are required to have C language linkage in C++. This ↵Aaron Ballman2015-01-291-1/+1
| | | | | | does not fix all signal handlers, but does fix the most recent one. llvm-svn: 227490
* Matching ARM change for r227481: DebugInfo: Teach Fast ISel to respect the ↵David Blaikie2015-01-291-7/+7
| | | | | | debug location of comparisons in jumps. llvm-svn: 227488
* R600/SI: Implement enableAggressiveFMAFusionMatt Arsenault2015-01-292-1/+31
| | | | | | | | | Add tests for the various combines. This should always be at least cycle neutral on all subtargets for f64, and faster on some. For f32 we should prefer selecting v_mad_f32 over v_fma_f32. llvm-svn: 227484
* R600/SI: Add subtarget feature for if f32 fma is fastMatt Arsenault2015-01-295-5/+23
| | | | llvm-svn: 227483
* R600/SI: Fix tonga's basic scheduling modelMatt Arsenault2015-01-291-1/+1
| | | | llvm-svn: 227482
* DebugInfo: Teach Fast ISel to respect the debug location of comparisons in jumpsDavid Blaikie2015-01-291-9/+9
| | | | | | | | | The use of the DbgLoc in FastISel is probably something we should fix. It's prone to leaking the wrong location into instructions - we should have a clear chain of custody from the debug location of an IR Instruction to that of a MachineInstr to avoid such leakage. llvm-svn: 227481
* [fuzzer] fix warning in a test Kostya Serebryany2015-01-291-2/+0
| | | | llvm-svn: 227478
* Compute the ELF SectionKind from the flags.Rafael Espindola2015-01-2919-386/+195
| | | | | | | | | | | | Any code creating an MCSectionELF knows ELF and already provides the flags. SectionKind is an abstraction used by common code that uses a plain MCSection. Use the flags to compute the SectionKind. This removes a lot of guessing and boilerplate from the MCSectionELF construction. llvm-svn: 227476
* [Hexagon] Deleting old variants of intrinsics and adding missing tests.Colin LeMahieu2015-01-293-186/+60
| | | | llvm-svn: 227474
* [Support][Windows] Unify dialog box suppression and print stack traces on abort.Michael J. Spencer2015-01-292-20/+30
| | | | llvm-svn: 227470
* [fuzzer] minor cleanup based on reviews: remove redundant includes, fix a ↵Kostya Serebryany2015-01-293-4/+2
| | | | | | copy-pasto in tests llvm-svn: 227468
* [fuzzer] add FAQ section to the README.txt Kostya Serebryany2015-01-291-1/+43
| | | | llvm-svn: 227466
* Reverting r227452, which adds back the fuzzer library. Now excluding the ↵Aaron Ballman2015-01-2921-0/+903
| | | | | | fuzzer library based on LLVM_USE_SANITIZE_COVERAGE being set or unset. llvm-svn: 227464
* [Hexagon] Adding CR intrinsic tests.Colin LeMahieu2015-01-291-0/+26
| | | | llvm-svn: 227463
* R600/SI: Remove stray debug statementsTom Stellard2015-01-291-5/+1
| | | | llvm-svn: 227462
* R600/SI: Define a schedule model and enable the generic machine schedulerTom Stellard2015-01-294-6/+94
| | | | | | The schedule model is not complete yet, and could be improved. llvm-svn: 227461
* [Hexagon] Deleting unused classes.Colin LeMahieu2015-01-291-1319/+0
| | | | llvm-svn: 227460
* [X86] Use single add/sub for large stack offsetsRobert Lougher2015-01-291-13/+46
| | | | | | | | | | | For large stack offsets the compiler generates multiple immediate mode sub/add instructions in the prologue/epilogue. This patch makes the compiler place the final amount to be added/subtracted into a register, which is then added/substracted with a single operation. Differential Revision: http://reviews.llvm.org/D7226 llvm-svn: 227458
* [Hexagon] Adding XTYPE/PRED intrinsic tests. Converting predicate types to ↵Colin LeMahieu2015-01-293-0/+30
| | | | | | i32 instead of i1. llvm-svn: 227457
* [PowerPC] Complete setting the baseline for ppc64leBill Schmidt2015-01-291-2/+7
| | | | | | | | | | | | Patch by Nemanja Ivanovic. As was uncovered by the failing test case (when run on non-PPC platforms), the feature set when compiling with -march=ppc64le was not being picked up. This change ensures that if the -mcpu option is not specified, the correct feature set is picked up regardless of whether we are on PPC or not. llvm-svn: 227455
* Temporarily reverting the fuzzer library as it causes too many build issues ↵Aaron Ballman2015-01-2921-901/+0
| | | | | | for MSVC users. This reverts: 227445, 227395, 227389, 227357, 227254, 227252 llvm-svn: 227452
* Adding missing #includes to try to get this to compile on Windows with ↵Aaron Ballman2015-01-296-0/+6
| | | | | | Visual Studio. llvm-svn: 227445
* Remove unused tokens in the ll lexer.Sean Silva2015-01-292-3/+0
| | | | | | Patch by Robin Eklind! llvm-svn: 227442
* Use isMergeableConst now that it is sane.Rafael Espindola2015-01-291-3/+1
| | | | llvm-svn: 227441
* Remove MergeableConst.Rafael Espindola2015-01-292-2/+3
| | | | | | | Only the specific ones (MergeableConst4, MergeableConst8, MergeableConst16) are handled specially. llvm-svn: 227440
* [LoopReroll] Refactor most of reroll() into a helper classJames Molloy2015-01-291-220/+273
| | | | | | | | | reroll() was slightly monolithic and a pain to modify. Refactor a bunch of its state from local variables to member variables of a helper class, and do some trivial simplification while we're there. llvm-svn: 227439
* EHPrepare: Remove leftover initialization code for DomTrees.Benjamin Kramer2015-01-292-27/+10
| | | | | | While there modernize some loops. NFC. llvm-svn: 227436
* Use enum values. NFC.Rafael Espindola2015-01-291-3/+3
| | | | llvm-svn: 227435
* Don't create multiple mergeable sections with -fdata-sections.Rafael Espindola2015-01-291-9/+10
| | | | | | | | | | | | | | | | | | | | | ELF has support for sections that can be split into fixed size or null terminated entities. Since these sections can be split by the linker, it is not necessary to split them in codegen. This reduces the combined .o size in a llvm+clang build from 202,394,570 to 173,819,098 bytes. The time for linking clang with gold (on a VM, on a laptop) goes from 2.250089985 to 1.383001792 seconds. The flip side is the size of rodata in clang goes from 10,926,785 to 10,929,345 bytes. The increase seems to be because of http://sourceware.org/bugzilla/show_bug.cgi?id=17902. llvm-svn: 227431
* [Mips][Disassembler] When disassembler meets cache/pref instructions for r6 ↵Vladimir Medic2015-01-292-0/+23
| | | | | | it crashes as the access to operands array is out of range. This patch adds dedicated decoder method for R6 CACHE_HINT_DESC class that properly handles decoding of these instructions. llvm-svn: 227430
* CommandLineParser: Avoid non-static member nitializer(s).NAKAMURA Takumi2015-01-291-2/+4
| | | | llvm-svn: 227428
* Fix the preprocessor checks used to determine if backtraces have been enabled.Owen Anderson2015-01-291-6/+6
| | | | llvm-svn: 227424
* Use the existing build configuration parameter ENABLE_BACKTRACE to compile ↵Owen Anderson2015-01-291-0/+16
| | | | | | | | | | out all pretty stack trace support when backtraces are disabled. This has the nice secondary effect of allowing LLVM to continue to build for targets without __thread or thread_local support to continue to work so long as they build without support for backtraces. llvm-svn: 227423
* [ELFYAML] Provide default value 0 for YAML relocation addendum fieldSimon Atanasyan2015-01-291-1/+1
| | | | | | Follow up to r227318. llvm-svn: 227422
* Remove an unused private field added r227405 to fix a Clang warning.Chandler Carruth2015-01-291-2/+1
| | | | llvm-svn: 227415
* [LPM] Clean up the use of TLS in pretty stack trace and disable itChandler Carruth2015-01-291-20/+2
| | | | | | | | | | | | | | | | | | | | | entirely when threads are not enabled. This should allow anyone who needs to bootstrap or cope with a host loader without TLS support to limp along without threading support. There is still some bug in the PPC TLS stuff that is not worked around. I'm getting access to a machine to reproduce and debug this further. There is some chance that I'll have to add a terrible workaround for PPC. There is also some problem with iOS, but I have no ability to really evaluate what the issue is there. I'm leaving it to folks maintaining that platform to suggest a path forward -- personally I don't see any useful path forward that supports threading in LLVM but does so without support for *very basic* TLS. Note that we don't need more than some pointers, and we don't need constructors, destructors, or any of the other fanciness which remains widely unimplemented. llvm-svn: 227411
* Remove unused variableReid Kleckner2015-01-291-2/+0
| | | | llvm-svn: 227408
* Add a Windows EH preparation pass that zaps resumesReid Kleckner2015-01-293-1/+110
| | | | | | | | | | | | | | | | | | | If the personality is not a recognized MSVC personality function, this pass delegates to the dwarf EH preparation pass. This chaining supports people on *-windows-itanium or *-windows-gnu targets. Currently this recognizes some personalities used by MSVC and turns resume instructions into traps to avoid link errors. Even if cleanups are not used in the source program, LLVM requires the frontend to emit a code path that resumes unwinding after an exception. Clang does this, and we get unreachable resume instructions. PR20300 covers cleaning up these unreachable calls to resume. Reviewers: majnemer Differential Revision: http://reviews.llvm.org/D7216 llvm-svn: 227405
* Remove getSubtargetImpl from AArch64ISelLowering and cache theEric Christopher2015-01-293-13/+10
| | | | | | | correct subtarget by passing it in during the constructor as TargetLowering is Subtarget specific. llvm-svn: 227402
* Remove getSubtargetImpl from ARMISelLowering and cache theEric Christopher2015-01-293-33/+22
| | | | | | | correct subtarget by passing it in during the constructor as TargetLowering is Subtarget specific. llvm-svn: 227401
* Small cleanup in ARMFastISel initialization.Eric Christopher2015-01-291-5/+4
| | | | llvm-svn: 227400
* Migrate ARM except for TTI, AsmPrinter, and frame loweringEric Christopher2015-01-2912-113/+70
| | | | | | away from getSubtargetImpl. llvm-svn: 227399
* Add nullptr checks for TargetSelectionDAGInfo in SelectionDAG.Manuel Jacob2015-01-281-13/+19
| | | | | | TSI is not guaranteed be non-null in SelectionDAG. llvm-svn: 227397
* [fuzzer] add option -save_minimized_corpusKostya Serebryany2015-01-285-4/+27
| | | | llvm-svn: 227395
* [LPM] Fix the PPC attribute to be spelled 'global-dynamic'. This shouldChandler Carruth2015-01-281-2/+2
| | | | | | let the build bot make finish compiling stage2. llvm-svn: 227391
OpenPOWER on IntegriCloud