What does isReMaterializable mean exactly?

Hi,
I compiled a function with many instructions that moves immediates. The generated code alloca space in the stack but never use it. Then I try to remove isReMaterializable = 1' of move immediate instructions in *.td file. And generated code doesn't alloca space in stack. Why this happend? I've try this in many backends, they seem to have the same problem. What exactly does isReMaterializable = 1’ mean? Does the register allocator fail to remove useless frame objects when remating?
Any ideas? Thanks.

Cheers,
Huang

---- example function below ----