Commits

Show all
Author Commit Message Labels Comments Date
Dale Johannesen
Add an SSE2 algorithm for uint64->f64 conversion. The same one Apple gcc uses, faster. Also gets the extreme case in gcc.c-torture/execute/ieee/rbug.c correct which we weren't before; this is not sufficient to get the test to pass though, there is another bug.
Tags
checker-114
Dan Gohman
Fix SelectionDAGBuild lowering of Select instructions to handle first-class aggregate values. Also, fix a bug in the Ret handling for empty aggregates.
Daniel Dunbar
Clear raw_fd_ostream error string on success and explain behavior in documentation. Add C++ header marker.
Dan Gohman
Updated email address.
Dan Gohman
Implement the optimized FCMP_OEQ/FCMP_UNE code for x86 fast-isel.
Tags
checker/checker-114
Torok Edwin
Fix make check on Solaris 10/x86: the default grep is not GNU grep, same for as.
Jim Grosbach
use pre-UAL mnemonics for push/pop for compilaton callback function
Nuno Lopes
fix a tricky bug in the JIT global variable emitter, that was triggered when JITing a variable independently of a function. This lead to sharing memory memory between functions and GVs thus changing the value of a GV could change the code in execution. more details on the ML.
Ted Kremenek
constify some methods and variables in ImmutableList.
Chris Lattner
really fix run line
Chris Lattner
fix run line
Chris Lattner
remove some unneeded eh generation
Dan Gohman
Disable constant-offset folding for PowerPC, as the PowerPC target isn't yet prepared for it.
Dan Gohman
Don't create TargetGlobalAddress nodes with offsets that don't fit in the 32-bit signed offset field of addresses. Even though this may be intended, some linkers refuse to relocate code where the relocated address computation overflows. Also, fix the sign-extension of constant offsets to use the actual pointer size, rather than the size of the GlobalAddress node, which may be different, for example on x86-64 where MVT::i32 is used when the address is being fit into the 32-bit displacement field.
Dan Gohman
Optimized FCMP_OEQ and FCMP_UNE for x86. Where previously LLVM might emit code like this: ucomisd %xmm1, %xmm0 setne %al setp %cl orb %al, %cl jne .LBB4_2 it now emits this: ucomisd %xmm1, %xmm0 jne .LBB4_2 jp .LBB4_2 It has fewer instructions and uses fewer registers, but it does have more branches. And in the case that this code is followed by a n…
Tags
checker-113
Dan Gohman
When the coalescer is doing rematerializing, have it remove the copy instruction from the instruction list before asking the target to create the new instruction. This gets the old instruction out of the way so that it doesn't interfere with the target's rematerialization code. In the case of x86, this helps it find more cases where EFLAGS is not live. Also, in the X86InstrInfo.cpp, teach isSafeToClobberEFLAGS to check to see if it reached the end of the block after scanning each instruction, instead of just before. This lets it notice when the end of the block is only two instructions away, without doing any additional scanning. These changes allow rematerialization to clobber EFLAGS in more cases, for example using xor instead of mov to set t…
Dan Gohman
Make the NaN test come second, heuristically assuming that NaNs are less common.
Dan Gohman
Use Function::getEntryBlock() instead of Function::front(), for clarity.
Oscar Fuentes
CMake: updated lib/CodeGen/CMakeLists.txt
Dan Gohman
Fix a bug that prevented llvm-extract -delete from working.
Chris Lattner
Fix gcc.c-torture/compile/920520-1.c by inserting bitconverts for strange asm conditions earlier. In this case, we have a double being passed in an integer reg class. Convert to like sized integer register so that we allocate the right number for the class (two i32's for the f64 in this case).
Evan Cheng
Add skeleton for the pre-register allocation live interval splitting pass.
Jim Grosbach
Update the stub and callback code to handle lazy compilation. The stub is re-written by the callback to branch directly to the compiled code in future invocations. Added back in range-based memory permission functions for the updating of the stub on Darwin.
Dan Gohman
Fast-isel no longer an experiment.
Evan Cheng
Add a register class -> virtual registers map.
Evan Cheng
This forward declaration is unnecessary.
Duncan Sands
Support operations like fp_to_uint with a vector result type when the result type is legal but not the operand type. Add additional support for EXTRACT_SUBVECTOR and CONCAT_VECTORS, needed to handle such cases.
Duncan Sands
Teach getTypeToTransformTo to return something sensible for vectors being scalarized. Note that this method can't return anything very sensible when splitting non-power-of-two vectors.
Duncan Sands
LegalizeTypes support for atomic operation promotion.
Duncan Sands
Use DAG.getIntPtrConstant rather than DAG.getConstant with TLI.getPointerTy for a small simplification.
  1. Prev
  2. Next