- Sep 10, 2013
-
-
Manman Ren authored
Specialize the constructors for DIRef<DIScope> and DIRef<DIType> to make sure the Value is indeed a scope ref and a type ref. Use DIScopeRef for DIScope::getContext and DIType::getContext and use DITypeRef for getContainingType and getClassType. DIScope::generateRef now returns a DIScopeRef instead of a "Value *" for readability and type safety. llvm-svn: 190418
-
Jim Grosbach authored
We were figuring out whether to use tPICADD or PICADD, then just using tPICADD unconditionally anyway. Oops. A testcase from someone familiar enough with ELF to produce one would be appreciated. The existing PIC testcase correctly verifies the .s generated, but that doesn't catch this bug, which only showed up in direct-to-object mode. http://llvm.org/bugs/show_bug.cgi?id=17180 llvm-svn: 190417
-
Logan Chien authored
This commit removes the unused "AttributeItem" from ObjectAttributeEmitter. llvm-svn: 190412
-
Renato Golin authored
LibXML2 config doesn't specify lzma as a dependency, which breaks cross-compilation builds using new linkers (ld 2.21 or higher). There is a bug on libxml2 to fix that, but since it's going to take a while for things to go round and back, so we should have a harmless addition of the library until then. llvm-svn: 190409
-
Kostya Serebryany authored
[asan] refactor the use-after-return API so that the size class is computed at compile time instead of at run-time. llvm part llvm-svn: 190407
-
Richard Sandiford authored
llvm-svn: 190404
-
Richard Sandiford authored
The main complication here is that TM and TMY (the memory forms) set CC differently from the register forms. When the tested bits contain some 0s and some 1s, the register forms set CC to 1 or 2 based on the value the uppermost bit. The memory forms instead set CC to 1 regardless of the uppermost bit. Until now, I've tried to make it so that a branch never tests for an impossible CC value. E.g. NR only sets CC to 0 or 1, so branches on the result will only test for 0 or 1. Originally I'd tried to do the same thing for TM and TMY by using custom matching code in ISelDAGToDAG. That ended up being very ugly though, and would have meant duplicating some of the chain checks that the common isel code does. I've therefore gone for the simpler alternative of adding an extra operand to the TM DAG opcode to say whether a memory form would be OK. This means that the inverse of a "TM;JE" is "TM;JNE" rather than the more precise "TM;JNLE", just like the inverse of "TMLL;JE" is "TMLL;JNE". I suppose that's arguably less confusing though... llvm-svn: 190400
-
Daniel Sanders authored
The dotp_[su].b instructions never existed in any revision of the MSA spec. llvm-svn: 190398
-
Vladimir Medic authored
Add test cases for Mips mthc1/mfhc1 instructions. Add check for odd value of register when PFU is 32 bit. llvm-svn: 190397
-
Vladimir Medic authored
llvm-svn: 190396
-
Michael Gottesman authored
[python-bindings] Changed test_memory_buffer_create_from_file to just use the generic provided test_file instead of a binary. llvm-svn: 190389
-
Michael Gottesman authored
This is a part of a series of patches that have been sitting fallow on a personal branch that I have been messing with for a bit. The patches start to flesh out the python llvm-c wrapper to the point where you can: 1. Load Modules from Bitcode/Dump/Print them. 2. Iterate over Functions from those modules/get their names/dump them. 3. Iterate over the BasicBlocks from said function/get the BB's name/dump it. 4. Iterate over the Instructions in said BasicBlocks/get the instructions name/dump the instruction. My main interest in developing this was to be able to gather statistics about LLVM IR using python scripts to speed up statistical profiling of different IR level transformations (hence the focus on printing/dumping/getting names). This is a gift from me to the LLVM community = ). I am going to be committing the patches slowly over the next bit as I have time to prepare the patches. The overall organization follows the c-api like the bindings that are already implemented. llvm-svn: 190388
-
NAKAMURA Takumi authored
XFAIL can be removed. (in r190374) llvm-svn: 190386
-
Matt Arsenault authored
The vselect mask isn't a setcc. This breaks in the case when the result of getSetCCResultType is larger than the vector operands e.g. %tmp = select i1 %cmp <2 x i8> %a, <2 x i8> %b when getSetCCResultType returns <2 x i32>, the assertion that the (MaskTy.getSizeInBits() == Op1.getValueType().getSizeInBits()) is hit. No test since I don't think I can hit this with any of the current targets. The R600/SI implementation would break, since it returns a vector of i1 for this, but it doesn't reach ExpandSELECT for other reasons. llvm-svn: 190376
-
Matt Arsenault authored
llvm-svn: 190375
-
NAKAMURA Takumi authored
llvm/test/DebugInfo/dwarf-public-names.ll: Mark it as XFAIL for PECOFF targets, for now. Investigating. FIXME: llvm-dwarfdump doesn't handle PECOFF. llvm-svn: 190374
-
Bill Wendling authored
llvm-svn: 190373
-
Andrew Trick authored
llvm-svn: 190367
-
Bill Wendling authored
llvm-svn: 190366
-
Manman Ren authored
TAG_friend are updated to use scope reference. Added testing cases to verify that class with inheritance can be uniqued. llvm-svn: 190364
-
Manman Ren authored
This partially reverts r190330. DIScope::getContext now returns DIScopeRef instead of DIScope. We construct a DIScopeRef from DIScope when we are dealing with subprogram, lexical block or name space. llvm-svn: 190362
-
Andrew Trick authored
Arnold's idea. I generally try to avoid stateful heuristics because it can make debugging harder. However, we need a way to prevent the latency priority from dominating, and it somewhat makes sense to schedule aggressively for latency only within an issue group. Swift in particular likes this, and it doesn't hurt anyone else: | Benchmarks/MiBench/consumer-lame | 10.39% | | Benchmarks/Misc/himenobmtxpa | 9.63% | llvm-svn: 190360
-
Jack Carter authored
llvm-svn: 190358
-
Eli Friedman authored
LLVM IR doesn't currently allow atomic bool load/store operations, and the transformation is dubious anyway because it isn't profitable on all platforms. PR17163. llvm-svn: 190357
-
- Sep 09, 2013
-
-
Bill Wendling authored
llvm-svn: 190354
-
Quentin Colombet authored
Several architectures use the same instruction to perform both a comparison and a subtract. The instruction selection framework does not allow to consider different basic blocks to expose such fusion opportunities. Therefore, these instructions are “merged” by CSE at MI IR level. To increase the likelihood of CSE to apply in such situation, we reorder the operands of the comparison, when they have the same complexity, so that they matches the order of the most frequent subtract. E.g., icmp A, B ... sub B, A <rdar://problem/14514580> llvm-svn: 190352
-
Manman Ren authored
llvm-svn: 190351
-
Bill Wendling authored
llvm-svn: 190350
-
Bill Wendling authored
llvm-svn: 190349
-
Bill Wendling authored
llvm-svn: 190348
-
Bill Wendling authored
llvm-svn: 190347
-
Eric Christopher authored
as well as types. No functional change as they're not emitted unless the option is true anyhow. llvm-svn: 190346
-
Eric Christopher authored
llvm-svn: 190345
-
Eric Christopher authored
handling. llvm-svn: 190344
-
Eric Christopher authored
for the gdb index as the names convey. llvm-svn: 190343
-
Eric Christopher authored
llvm-svn: 190342
-
Bill Wendling authored
There are more than one paths to where the frame information is emitted. Place the call to generateCompactUnwindEncodings() into the method which outputs the frame information, thus ensuring that the encoding is there for every path. This involved threading the MCAsmBackend object through to this method. <rdar://problem/13623355> llvm-svn: 190335
-
Manman Ren authored
In DIBuilder, the context field of a TAG_member is updated to use the scope reference. Verifier is updated accordingly. DebugInfoFinder now needs to generate a type identifier map to have access to the actual scope. Same applies for BreakpointPrinter. processModule of DebugInfoFinder is called during initialization phase of the verifier to make sure the type identifier map is constructed early enough. We are now able to unique a simple class as demonstrated by the added testing case. llvm-svn: 190334
-
Bob Wilson authored
llvm-svn: 190331
-
Manman Ren authored
DIScope::getContext is a wrapper function that calls the specific getContext method on each subclass. When we switch DIType::getContext to return DIScopeRef instead of DIScope, DIScope::getContext can no longer return a DIScope without a type identifier map. DIScope::getContext is only used by DwarfDebug, so we move it to DwarfDebug to have easy access to the type identifier map. llvm-svn: 190330
-